Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android:应用程序关闭后,服务成员变量变为null_Android_Sockets_Android Fragments_Android Intent_Android Service - Fatal编程技术网

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

android:应用程序关闭后,服务成员变量变为null,android,sockets,android-fragments,android-intent,android-service,Android,Sockets,Android Fragments,Android Intent,Android Service,在我的应用程序中,我有活动和服务,活动称为startService和bindservice(用于服务和活动之间的通信) 服务中的socket通信正在初始化,还有一个Messanger处理程序已初始化,用于返回回复活动。当应用程序启动并运行时,它工作正常 一旦应用程序被用户强制关闭,服务就会自动重新启动,我可以在logcat中看到这一点。这里套接字也初始化了。但是Messanger处理程序仍然为空,因为它以前是由mMyService.setHandler(handler)方法初始化的,该方法从活动

在我的应用程序中,我有活动和服务,活动称为
startService
bindservice
(用于服务和活动之间的通信)

服务中的
socket通信
正在初始化,还有一个
Messanger处理程序
已初始化,用于返回回复活动。当应用程序启动并运行时,它工作正常

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

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

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

任何帮助都将不胜感激


提前感谢。

一旦您强制关闭应用程序,您将无法与活动进行通信。它不见了。死了

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

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

您希望发生什么?如果应用程序被强制关闭,则所有活动都将消失。@DavidWasser是正确的。所有活动都将消失,并且我的服务已重新启动,因为我使用了STICKY。现在如何在服务和活动之间进行通信?感谢您的答复。我将尝试应用此解决方法