在我的应用程序中,我有 Activity 和服务, Activity 称为 startService
和 bindservice
(用于服务和 Activity 之间的通信)。
在服务中,socket communication
正在初始化,并且还初始化了一个 Messanger handler
以返回对 Activity 的回复。当应用程序启动并运行时它工作正常。
一旦应用程序被用户强行关闭,服务就会自动重新启动,我可以在 logcat 中看到这一点。这里套接字也初始化了。但是 Messanger handler
仍然是 null,因为它之前是由 mMyService.setHandler(handler)
方法初始化的,该方法从 Activity 中调用,但这次它是在服务自动重启时调用的。
应用程序关闭后如何在 Activity 和服务之间进行通信。服务正在运行,但 Activity 处于死亡状态。
请帮帮我。我在这方面花了很多时间。
如有任何帮助,我们将不胜感激。
提前致谢。
最佳答案
一旦您强制关闭应用程序,您将无法与 Activity 通信。它不见了。死了。
您可以做的是识别这种情况(例如,您可以检查是否 handler == null
,如果是,您可以从服务中自动启动 Activity,如下所示:
if (handler == null) {
Intent intent = new Intent(this, MyActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
关于机器人 : Service member variables becomes null after application closed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31126738/