Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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_Service - Fatal编程技术网

Android 启动新服务实例时,应用程序类的变量为null

Android 启动新服务实例时,应用程序类的变量为null,android,service,Android,Service,我有一个main应用程序类,它扩展了应用程序 我还有一个AlarmBroadcastReceiver类,它扩展了BroadcastReceiver onReceive(context,intent)AlarmBroadcastReceiver的方法从intent获取数据并启动服务。我在一个单独的线程中运行服务,这是它在AndroidManifest.xml中的声明: <service android:name="***myPackageName***.AlarmService"

我有一个
main应用程序
类,它扩展了
应用程序

我还有一个
AlarmBroadcastReceiver
类,它扩展了
BroadcastReceiver

onReceive(context,intent)
AlarmBroadcastReceiver的方法从
intent
获取数据并启动服务。我在一个单独的线程中运行服务,这是它在
AndroidManifest.xml
中的声明:

<service android:name="***myPackageName***.AlarmService"
                 android:process=":remote">
</service>

问题如下:如果我在Android 4.0上单击“主页”按钮关闭应用程序,打开“最近的应用程序”,并在服务运行时将应用程序向左拉,然后再次启动应用程序(该服务仍在运行),即新服务,当
AlarmBroadcastReceiver
接收到新意图时启动,无法获取
MainApplication
类的数据(甚至
MainApplication
的静态变量也为空)。为什么?
我无法执行调试,因为当我关闭应用程序时,调试器已解除连接

为什么?

因为您添加了
android:process=“:remote”
,它在一个单独的进程中运行您的服务,并拥有自己的
应用程序
对象的单独副本


只需删除android:process=“:remote”,因为在android上使用多个进程是一种反模式。

好的,我了解应用程序的副本。非常感谢你!我将更改我的代码…我更改了代码,现在错误已修复。我已经删除了
android:process=“:remote”
,只需在一个单独的线程中启动一个服务。