在我的应用程序中,我正在设置警报并且工作正常。当我尝试再次安装代码而不卸载以前的软件包时,我的警报将被删除。我想恢复警报,除非我删除警报。< / p>
我遇到过某个地方(Android - Alarm lost after app update)说我们应该在接收器中使用android.intent.action.MY_PACKAGE_REPLACED,这样我可以在广播时再次设置闹钟。此时我不会触发此广播重新运行!
请帮助我提出宝贵的建议:)
提前致谢。
答案 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方法中设置你的闹钟