启动新的Service实例时,Application类的变量为null

时间:2013-07-11 11:18:47

标签: android service

我有一个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的静态变量也是如此空值)。为什么呢?
我无法执行调试,因为当我关闭应用程序时,调试器已解除...

1 个答案:

答案 0 :(得分:1)

  

为什么?

因为您添加了android:process=":remote",它在一个单独的流程中运行您的服务,并使用您自己的Application对象的单独副本。

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