每當用戶的設備重新啓動時,設置SharedPreference時都會遇到很多困難。嘗試使用ON_BOOT_COMPLETED廣播接收器設置SharedPreference
前幾天我發佈了這個問題,並收到了兩個答案,這兩個答案都將我的代碼中的錯誤視爲已糾正,但問題仍然存在。
任何幫助將被極大讚賞。
這裏是我的代碼:
MyReceiver.java
package ***************;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.util.Log;
public class MyReceiver extends BroadcastReceiver {
SharedPreferences mPrefs;
@Override
public void onReceive(Context context, Intent intent) {
String TAG ="MyReceiver";
Log.d(TAG,"Did I Run?");
mPrefs = context.getSharedPreferences("myAppPrefs", 0);
SharedPreferences.Editor edit = mPrefs.edit();
edit.putString("status", "Masqed Crusader is OFFLINE");
edit.commit();
}
}
Android清單
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1" package="*********" android:versionName="1.8.3">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="help"></activity>
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETE"/>
</intent-filter>
</receiver>
</application>
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
</manifest>
的SharedPreferences是我的主要活動設置。我的目標是獲得ON_BOOT_COMPLETED廣播來觸發MyReceiver活動,該活動會重置特定的SharedPreference,但是,當我嘗試此操作時,SharedPref未被重置。
我在做什麼錯?
您的應用程序是否安裝在SD卡上?如果您在onReceive方法中放置了一條日誌行,那麼該行是否被記錄? – 2011-04-04 14:36:17
@David該應用程序未安裝在SD卡上。我只是在我的代碼和原始帖子中添加了一條日誌行...該行似乎沒有記錄,儘管我會承認我可能做錯了什麼。 – 2011-04-04 15:34:29
好東西 - 我問,因爲SD卡安裝在BOOT_COMPLETED之後,但顯然這不是問題。 – 2011-04-04 15:59:02