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”
,只需在一个单独的线程中启动一个服务。