2016-12-29 55 views
3

我的應用程序即將準備就緒,現在有一件事情我知道更新後,用戶設置的所有警報都會熄滅。爲此,我讀了很多,發現我必須在清單中使用用戶包進行替換,以檢查更新並以廣播形式接收。這是我在清單中添加的內容,並且在我更改gradle中的版本碼時發送廣播時進行了測試。確保應用程序更新後的警報工作

<receiver 
      android:name=".AppUpdateHandler" 
      android:exported="false"> 

      <intent-filter android:priority="900"> 
       <action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> 
       <data android:scheme="package" /> 
      </intent-filter> 
      <intent-filter android:priority="1000"> 
       <action android:name="android.intent.action.PACKAGE_REPLACED" /> 
       <data android:scheme="package" /> 
      </intent-filter> 
      </receiver> 

現在接下來是我用來設置報警代碼,

public void setalarm() { 
     Intent intent = new Intent(Settings.this, AlarmReceiver.class); 
     final PendingIntent pendingIntent = PendingIntent.getBroadcast(this, AlarmReceiver.receivercode, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
     AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
     SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     userdefinedinterval = sharedPreferences.getString("date", ""); 
     alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), Integer.parseInt(userdefinedinterval) * 60 * 60 * 24 * 1000, pendingIntent); 
       } 

我閱讀和認識了約未決意圖的ID,這是我我的情況是AlarmReceiver.receivercode。但現在需要幫助,我應該怎麼做才能讓更新後的應用程序警報處於活動狀態。我是否需要通過捕獲更新狀態的廣播來調用所有警報,或者其他可能的情況。還有一件事,我已經在清單中添加了引導,以便在重新引導後警報繼續工作。在這裏,我通過sharedpreference檢查與報警關聯的每個選項的狀態,然後分別觸發報警。我是否需要以相同的方式處理更新?

回答

0

我得到了它的解決方案。可以按照與完成啓動相同的方式完成。只需在更新時調用bootcompleted接收機類,並根據用戶設置重置所有警報。 或者只是在更新接收器中複製報警方法,並完成。