我的应用程序几乎准备就绪,现在我知道一件事,更新后,用户设置的所有闹钟都会响起。为此,我阅读了很多,发现我必须在 list 中替换用户包以检查更新并在广播中接收。这是我在 list 中添加的内容,并在我更改 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);
}
我阅读并了解了待定 Intent ID,我的情况是 AlarmReceiver.receivercode。但现在需要帮助,了解我应该如何在更新后保持我的应用程序警报处于 Activity 状态。我是否需要通过捕获更新状态或其他可能的广播来调用所有警报。还有一件事,我也在 list 中添加了启动完成,以便警报在重启后继续工作。这里我通过 sharedpreference 检查与报警关联的每个选项的状态,然后分别触发报警。我需要以同样的方式处理更新吗?
最佳答案
我得到了解决方案。它可以像我们完成引导一样的方式来完成。只需在更新时调用 bootcompleted 接收器类,所有警报将根据用户设置重置。 或者只是在更新接收器中复制警报方法并完成。
关于java - 确保应用程序更新后警报正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41382077/