我有一个MainApplication
课程,扩展了Application
我还有一个AlarmBroadcastReceiver
课程,其范围为BroadcastReceiver
onReceive(context, intent)
的{{1}}方法从AlarmBroadcastReceiver
获取数据并启动服务。我在一个单独的线程中运行服务,这是intent
中的声明:
AndroidManifest.xml
问题如下:如果我通过单击Android 4.0上的“主页”按钮关闭应用程序,打开“最近的应用程序”并在服务运行时将应用程序拉到左侧,然后再次启动应用程序(服务仍在运行),当<service android:name="***myPackageName***.AlarmService"
android:process=":remote">
</service>
收到新意图时启动的新服务无法获取AlarmBroadcastReceiver
类的数据(即使是MainApplication
的静态变量也是如此空值)。为什么呢?
我无法执行调试,因为当我关闭应用程序时,调试器已解除...
答案 0 :(得分:1)
为什么?
因为您添加了android:process=":remote"
,它在一个单独的流程中运行您的服务,并使用您自己的Application
对象的单独副本。
只需删除android:process=":remote"
,因为在Android上使用多个进程是一种反模式。