我的情况有点不同。我正在为我的应用程序开发API,以便第三方开发人员可以使用我的应用程序。这就是为什么我的API代码只是像Facebook SDK这样的库(导入并使用它)。
在这个API中,我使用的是alarmManager和BroadCastReceivers,我需要第三方开发人员的主要活动的上下文来使API工作。
这就是为什么我编写了一个示例应用程序来实现这一目标的原因,我将活动和上下文作为API的静态变量发送到我的API。
当我启动Sample App时,虽然它进入了onDestroy State,但它运行良好。
然而,在我从内存中清除我的应用程序后(从应用程序托盘中),当背景接收器收到某些内容时,由于一些空的静态变量,它会爆炸。
是的,我可以将sharedPreferences用于定义为boolean,string等的静态变量。 那些定义为静态的主要活动的活动和上下文怎么样? 如何初始化它们?
当后台接收器收到某些内容时,它会自动创建一个主要活动的实例?
答案 0 :(得分:0)
你必须在onPause()而不是像这样的onDestroy()活动方法中取消注册你的接收者,
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(receiver);
}