java - 在接收器类中使用上下文

标签 java android android-intent broadcastreceiver android-context

我有一个在设备打开时启动的应用程序。我尝试做的不是打开任何 Activity ,而是打开一个执行某些进程的线程。

这是我的接收器类:

public class BOOTReceiver extends BroadcastReceiver {
   Info info = new Info();

   public void onReceive(Context context, Intent intent) {
       assignUserInfo(context);
       SomeThread u = new SomeThread(info);
       u.run();
   }

   private void assignUserInfo(Context ctx) {
       info.setInfo(AnotherClass.getInfo(ctx));
    }
}

如果我调用“assignUserInfo”,它使用参数“context”调用另一个类,则应用程序不会启动。否则,线程正在工作。

这段代码有什么问题?

最佳答案

我认为你应该使用 IntentService 来进行线程处理。另外,如果您的应用程序可以唤醒手机,您应该尝试从 WakefulBroadcastReceiver 扩展接收器。 作为附加建议,请尽可能尝试使用应用程序上下文

context.getApplicationContext();

避免内存泄漏。

http://developer.android.com/reference/android/app/IntentService.html http://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver.html

希望有帮助。

关于java - 在接收器类中使用上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25593835/

相关文章:

java - Android - 将修饰符更改为静态?

java - 与相同逻辑条件查询相比,HQL 查询返回不同的结果

java - 使用 java.lang.String.intern() 是一种好习惯吗?

java - ADT 到 Android Studio 意外顶级异常

java - 使用 Intent 过滤器从 XML 获取数据的问题

java - 如何为安全的 go grpc 服务创建不安全的 Java grpc 客户端

android - 偏好项上的重复联系人

java - Android AudioTrack 在某些设备上速度极慢

java - android eclipse错误二进制xml文件错误膨胀类android.widget.relativelayout

android - 即使我的应用程序不工作,我的广播接收器也会执行