0

我想知道当应用程序设置->管理应用程序->强制关闭时到底会发生什么。它是否调用 onDestroy()。如果用户强制关闭我的应用程序,我想重新启动它。这个怎么做。我想知道是否可以在接收 SMS 或使用广播接收器呼叫时重新启动它。

是的,我也在做同样的事情。我正在使用此代码检查我的服务是否正在运行,但它始终显示“服务正在运行” Toast boolean isServiceRunning = AppSettings.getServiceRunning(context); if (isServiceRunning) { Toast.makeText(context,"service running", Toast.LENGTH_LONG).show(); } else { Toast.makeText(context,"服务停止", Toast.LENGTH_LONG).show(); 我在广播接收器的 onReceive( )
中写这个请帮助我。

4

2 回答 2

0

强制关闭是:

android.os.Process.killProcess(android.os.Process.myPid());

在 AndroidManifest 中注册您的接收器。这样,即使您的应用未运行,它也会被调用:R.styleable.AndroidManifestReceiver

然后,您可以在 BroadcastReceiver 中检查服务是否仍在运行并重新启动它。

例如,请参见此处的 SmSForwarder 类。广播接收器不需要运行,因为它是 AndroidManifest.xml中的注册端(参见第 29 行)。发送 Intent “android.provider.Telephony.SMS_RECEIVED”后,Android 将启动 Broadcastreceiver。

于 2013-04-12T11:18:54.793 回答
0

在用户强制关闭后重新启动应用程序可能被视为恶意软件的迹象。这是非常不鼓励的。话虽如此,如果您真的想重新启动它,请使用AlarmManager并每隔一小时左右检查一次应用程序状态。

与短信或电话相比,捕获android.intent.action.SCREEN_ONIntent 并重新启动应用程序可能是一个更好的主意。

于 2013-04-12T11:39:09.507 回答