我想设置一些标志,我的应用程序可以在发生某种情况时检查。我想要这个' flag'系统重新启动时自动删除。我需要这个标志来持续多次重启应用程序。
我的第一次尝试是尝试System.setProperty("flag", "true")
,但我发现在应用重启后执行System.getProperty()
时,此标志不再设置。
我的另一个想法是在条件发生时创建文件。然后当应用程序重新启动时,我可以检查该文件是否存在。我可以使用BootReceiver在系统重新启动时清除文件。这个问题是在执行BootReceiver之前检查这个文件可能不是我想要的。
我能想到的任何更简单的机制吗?我使用缓存文件查看了SharedPreferences和内部存储,但我认为它们不会起作用。
答案 0 :(得分:0)
我会使用启动广播接收器和SharedPreferences。 系统启动时,重置您的变量并将其保存到SharedPreferences。
将此添加到清单:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
还有这个:
<receiver android:name=".BootReciever">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
最后你需要创建broadcastReceiver:
public class BootReciever extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
mSharedPreferences.putBoolean("yourVariable", true).apply();
}
}