我的广播接收器在服务中正常运行,直到我的应用程序运行,但是如果我关闭我的应用程序,它将立即停止工作。
在这里,我希望我的应用程序每次都能检测到互联网变化并显示Toast,但是显示Toast消息直到我的应用程序正常工作。
我已经在MainActivity中启动了我的服务,并在我的服务中定义了我的广播。
在MainActivity中的onCreate里面
Intent service = new Intent(MainActivity.this, LatestCallService.class);
startService(service);
服务内部的BroadcastReceiver:
BroadcastReceiver br = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Inside", Toast.LENGTH_SHORT).show();
}
}
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
_mContext = getApplicationContext();
_mContext.registerReceiver(br, filter);
请让我知道我的代码有什么问题。
术语“关闭我的应用程序不是一个精确的陈述。但是我想你的意思是您在“近期任务”列表屏幕中向右/向左滑动应用程序。
一旦onReceive()返回,如果您在前台没有活动并且没有正在运行的服务,则您的流程重要性将下降到Android document将其称为“缓存进程”。 Android系统将随时终止这些过程。一旦过程终止,您的BroadCast接收器也不起作用。
好的,如果关闭应用程序,则不是我要说的那样,当您转到“设置”中的应用程序屏幕并单击强制停止按钮时,可能不是我所说的意思。因此,一旦您的应用被强制停止,您的应用将永远无法运行,直到用户或其他应用启动您的应用为止!
********更新解决方案:您可以在此post中找到解决问题的方法。