android:应用程序关闭后,服务成员变量变为null

时间:2015-06-29 22:38:51

标签: android sockets android-fragments android-intent android-service

在我的应用程序中,我有活动和服务,活动名为startServicebindservice(用于服务和活动之间的通信)。

服务socket communication正在初始化,并且还初始化了一个Messanger handler以回复活动。应用程序启动并运行时,它正常工作。

一旦应用程序被用户强行关闭,服务就会自动重新启动,我可以在logcat中看到。这里socket也初始化了。但是Messanger handler仍然为null,因为之前由mMyService.setHandler(handler)方法初始化,该方法是从活动调用,但这次是在服务自动重新启动时调用的。

如何在应用程序关闭后在活动和服务之间进行通信。服务正在运行,但活动处于死亡状态。

请帮帮我。我花了很多时间在这里。

任何帮助都将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:1)

强制关闭应用后,您无法与活动进行通信。它消失了。死。

您可以做的是识别情况(例如,您可以检查是否handler == null,如果是,您可以自动从服务启动活动,如下所示:

if (handler == null) {
    Intent intent = new Intent(this, MyActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}