广播接收器虽然主要活动被杀,但是到达主要的活动

时间:2015-08-06 01:43:07

标签: android static alarmmanager broadcast

我的情况有点不同。我正在为我的应用程序开发API,以便第三方开发人员可以使用我的应用程序。这就是为什么我的API代码只是像Facebook SDK这样的库(导入并使用它)。 在这个API中,我使用的是alarmManager和BroadCastReceivers,我需要第三方开发人员的主要活动的上下文来使API工作。 这就是为什么我编写了一个示例应用程序来实现这一目标的原因,我将活动和上下文作为API的静态变量发送到我的API。
当我启动Sample App时,虽然它进入了onDestroy State,但它运行良好。

然而,在我从内存中清除我的应用程序后(从应用程序托盘中),当背景接收器收到某些内容时,由于一些空的静态变量,它会爆炸。

是的,我可以将sharedPreferences用于定义为boolean,string等的静态变量。 那些定义为静态的主要活动的活动和上下文怎么样? 如何初始化它们?

当后台接收器收到某些内容时,它会自动创建一个主要活动的实例?

1 个答案:

答案 0 :(得分:0)

你必须在onPause()而不是像这样的onDestroy()活动方法中取消注册你的接收者,

 @Override
protected void onPause() {
    super.onPause();
    unregisterReceiver(receiver);
}