设备重启后插入时应用强制关闭
App force closes when plugged in after device reboot
我有一个具有意图过滤器的广播接收器:ACTION_POWER_CONNECTED。接收方应该启动服务。设备未重启时接收器工作良好,但一旦我重启设备并插入设备,应用程序就会强制关闭。在我的接收器中,我引用了另一个活动的静态变量。为什么应用会强制关闭?
"dataSaved" 是 MainActivity 中的一个 SharedPreferences 变量
if (MainActivity.dataSaved.getBoolean("User", false)) {
Intent i = new Intent(context, BatteryService.class)
context.startService(i);
}
你说 dataSaved
是一个静态的 SharedPreference
,它没有被初始化,所以 getBoolean
抛出一个 NullPointerException
。您在 MainActivity
中的某处初始化了它,但在重新启动后没有 MainActivity
来初始化它
获取reciever中的sharedpreference
SharedPreferences dataSaved = context.getSharedPreferences("prefs", Context.MODE_PRIVATE);
boolean isUser = dataSaved.getBoolean("User", false);
我有一个具有意图过滤器的广播接收器:ACTION_POWER_CONNECTED。接收方应该启动服务。设备未重启时接收器工作良好,但一旦我重启设备并插入设备,应用程序就会强制关闭。在我的接收器中,我引用了另一个活动的静态变量。为什么应用会强制关闭?
"dataSaved" 是 MainActivity 中的一个 SharedPreferences 变量
if (MainActivity.dataSaved.getBoolean("User", false)) {
Intent i = new Intent(context, BatteryService.class)
context.startService(i);
}
你说 dataSaved
是一个静态的 SharedPreference
,它没有被初始化,所以 getBoolean
抛出一个 NullPointerException
。您在 MainActivity
中的某处初始化了它,但在重新启动后没有 MainActivity
来初始化它
获取reciever中的sharedpreference
SharedPreferences dataSaved = context.getSharedPreferences("prefs", Context.MODE_PRIVATE);
boolean isUser = dataSaved.getBoolean("User", false);