当我的代码运行到这一行时:
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/