Android:手机重启后恢复应用变量

时间:2014-01-18 10:23:25

标签: android

我开发了一个应用程序,它使用切换按钮来决定启用/禁用我的应用程序。我将切换按钮状态存储为静态变量,以便在停止和恢复时保留它的值。但是,重新启动时,静态变量将重新初始化为其默认状态。有没有什么方法可以让我的应用程序恢复其状态,即使重启后?

具体来说,我的应用程序所做的是在切换时启用“服务”。所以我希望在重启手机时自动启动该服务。这可能吗?

由于

4 个答案:

答案 0 :(得分:2)

将变量保存在SharedPreferences

了解它是如何运作的,http://developer.android.com/reference/android/content/SharedPreferences.html

然后在您的活动开始时恢复它们

不是那么重要,但如果你使用切换,你可以保存布尔

教程:http://www.vogella.com/tutorials/AndroidFileBasedPersistence/article.html

GL

编辑:在关于服务的其他问题上,我们真的不知道你到目前为止做了什么,但也许这样:Android -Starting Service at Boot Time可以提供帮助,如果没有提供你所做的一些代码。

答案 1 :(得分:1)

嗯,当您的应用程序在手机重新启动时启动时,这是可能的。将通过主要活动调用服务。 您可以在手机通过看起来像这样的broadcastrecievir时启动应用程序。: -

public class BootUpReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, MainActivity.class);  
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

}

这需要在AndroidManifest中添加为: -

 <receiver
        android:name="com.example.xyz.BootUpReceiver"
        android:enabled="true" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

答案 2 :(得分:0)

将变量存储到SQLiteSharedPreferences。然后在Activity重新启动时恢复它的状态。

答案 3 :(得分:0)

您可以将变量存储到共享偏好中,这将更加容易

http://developer.android.com/reference/android/content/SharedPreferences.html

// to save it
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
editor.putString("your_key", "your_value");
editor.commit();


//to retrieve it back

SharedPreferences prefs = getPreferences(MODE_PRIVATE); 
String your_value= prefs.getString("your_key", null);