Android设置临时属性

时间:2017-03-17 14:24:02

标签: android android-preferences

我想设置一些标志,我的应用程序可以在发生某种情况时检查。我想要这个' flag'系统重新启动时自动删除。我需要这个标志来持续多次重启应用程序。

我的第一次尝试是尝试System.setProperty("flag", "true"),但我发现在应用重启后执行System.getProperty()时,此标志不再设置。

我的另一个想法是在条件发生时创建文件。然后当应用程序重新启动时,我可以检查该文件是否存在。我可以使用BootReceiver在系统重新启动时清除文件。这个问题是在执行BootReceiver之前检查这个文件可能不是我想要的。

我能想到的任何更简单的机制吗?我使用缓存文件查看了SharedPreferences和内部存储,但我认为它们不会起作用。

1 个答案:

答案 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();
   }
}