设备重启后插入时应用强制关闭

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);