重新运行我的应用程序时警报被删除

时间:2018-02-07 12:53:42

标签: android android-alarms

在我的应用程序中,我正在设置警报并且工作正常。当我尝试再次安装代码而不卸载以前的软件包时,我的警报将被删除。我想恢复警报,除非我删除警报。< / p>

我遇到过某个地方(Android - Alarm lost after app update)说我们应该在接收器中使用android.intent.action.MY_PACKAGE_REPLACED,这样我可以在广播时再次设置闹钟。此时我不会触发此广播重新运行!

请帮助我提出宝贵的建议:)

提前致谢。

1 个答案:

答案 0 :(得分:1)

在你的清单中添加那些接收器

<receiver
android:name=".BootReceiver"
android:enabled="false">
      <intent-filter>
         <action android:name="android.intent.action.BOOT_COMPLETED"></action>
      </intent-filter>
</receiver>

<receiver
      android:name=".InstallReceiver"
      android:exported="true" >
      <intent-filter>
           <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
      </intent-filter>
</receiver>

现在创建这两个接收器

public class BootReceiver extends BroadcastReceiver {
    SirvedAlarmReceiver alarm = new SirvedAlarmReceiver();
    UpdateAlarmReceiver updateAlarmReceiver = new UpdateAlarmReceiver();

    @Override
    public void onReceive(Context context, Intent intent) {

            // Set alarm here

    }
}

public class InstallReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

                // Set alarm here

    }
}

现在在两个类onReceive方法中设置你的闹钟