java - 在 Java 中创建新的 Activity() 时抛出异常

标签 java android

当我的代码运行到这一行时:

Context context = new Activity().getApplicationContext();

抛出的异常:

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

我尝试创建 new Handle() 并在它之前添加 Looper.prepare(),但是它不起作用。

最佳答案

Android 中的上下文不是抽象的东西。它是应用程序及其组件当前状态的真实上下文(或者您可以将其假设为环境)。

因此,您不应该仅仅为了使用它提供的功能而创建“上下文”的新实例。正确的方法是使用实​​际存在的上下文。这里有两种方法:

  • 使用现有组件的上下文 - 这种方式在大多数情况下更可取。任何继承 Context 的类都可以扮演这个角色。如果在代码的该范围内没有可访问的上下文对象,您可以将其作为参数传递到方法调用或类构造函数中。
  • 使用Application contex - 这里是simplest solution了解如何从应用程序中的任何位置以静态方式访问应用程序上下文。 此解决方案将解决您的问题,但它也有 disadvantages使用它时值得考虑的因素。

关于java - 在 Java 中创建新的 Activity() 时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33277407/

相关文章:

android - brew cask 安装 android-sdk

java - Firebase 实时数据库 : Howto index properly on key-value pair

java - Android:引用单个 View 的多个变量?

java - 如何使用固定宽高比 View 膨胀扩展 View

java - addDays 和 addMonths 到 Java 中的日期方法

java - NoClassDefFoundError com.google.common.collect.Lists

android - ACTION_CALL 无法正常工作

java - JSTL 标签会自动转义 HTML 吗?

java - Java中如何停止计划的任务

java - Android 应用程序无法很好地渲染 html 标签