应用更新后确保警报正常工作

时间:2016-12-29 14:55:30

标签: java android alarmmanager updates

我的应用程序已经准备就绪,现在有一件事我知道更新后,用户设置的所有警报都会消失。为此,我阅读了很多,并发现我必须在清单中的用户包替换检查更新和广播接收。这是我在清单中添加并在我在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。但现在需要帮助我应该怎么做才能在更新后保持我的应用程序警报处于活动状态。我是否需要通过广播来呼叫所有警报,这些警报正在捕获更新状态或其他可能的情况。还有一件事,我已经在清单中添加了启动,以便警报在重启后继续工作。在这里,我通过共享偏好检查与警报相关的每个选项的状态,然后分别触发警报。我是否需要以同样的方式处理更新?

1 个答案:

答案 0 :(得分:0)

我得到了它的解决方案。它可以像我们完成启动一样完成。只需在更新时调用bootcompleted接收器类,所有警报将根据用户设置重置。 或者只是在更新接收器中复制报警方法并完成它。