簡體   English   中英

Android:重啟手機后恢復應用程序變量

[英]Android: Resume app variables after a phone reboot

我已經開發了一個應用程序,該應用程序使用切換按鈕來決定啟用/禁用我的應用程序。 我將切換按鈕狀態存儲為靜態變量,以使其在停止和恢復時保持其值。 但是,在重新啟動時,靜態變量將重新初始化為默認狀態。 有什么方法即使重啟后也能使我的應用恢復其狀態?

具體來說,我的應用程序執行的操作是在啟用后啟用“服務”。 因此,我希望該服務在電話重啟時自動啟動。 那可能嗎?

謝謝

將變量保存在SharedPreferences

查看其工作原理, http://developer.android.com/reference/android/content/SharedPreferences.html

然后在您開始活動時將其還原

不是很重要,但是如果您使用切換功能,則可以保存布爾值

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

GL

編輯:關於服務的其他問題,可能真的不知道您到目前為止所做的一切,但是也許這樣: Android-在啟動時啟動服務可以提供幫助,如果沒有提供您所做的一些代碼。

好吧,這是有可能的,當您的應用程序在電話重啟時啟動時。服務將通過主要活動調用。 您可以通過如下所示的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>

將變量存儲到SQLiteSharedPreferences 然后在“ Activity重新啟動”時恢復其狀態。

您可以將變量存儲到sharedpreferences中,這將更加容易

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM