重启后Android警报重置不起作用
Posted
技术标签:
【中文标题】重启后Android警报重置不起作用【英文标题】:Android Alarm reset after reboot not working 【发布时间】:2014-04-26 10:27:37 【问题描述】:我有一个名为 StopAlarmReceiver 的类和另一个 BootHandler。
BootHandler在重启后重置警报,这是在启动之前设置的。我的问题是 BootHandler 设置了警报但没有被触发。
清单文件中的条目。
<receiver
android:name="com.sign.android.myscheduler.app.StopAlarmReceiver"
android:enabled="true"
android:exported="true" >
</receiver>
<receiver
android:name="com.sign.android.myscheduler.app.BootHandler"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
BootHandler 中的代码。
AlarmManager mgr= (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, StopAlarmReceiver.class);
PendingIntent pi = PendingIntent.getService(context, 1, i, 0);
long time = sharedPreferences.getLong("Old_time", 0);
Log.e(TAG, "New time: " +new Date(SystemClock.elapsedRealtime() + time));
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + time, 5000, pi);
【问题讨论】:
您是否拥有BOOT_COMPLETED
权限?您是否在此应用中运行过活动?
是的,我有 清单 只需写两个接收器 1 用于警报和 1 用于处理启动
<receiver
android:name="packagename.AlarmReceiver"
>
</receiver>
<!-- Will not be called unless the application explicitly enables it -->
<receiver android:name="com.avion.contact_app.DeviceBootReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
添加以下权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
在 DeviceBootReceiver 类中首先检查意图操作
@Override
public void onReceive(Context context, Intent intent)
SharedPreferences prefs = context.getSharedPreferences(
"DefaultReminder", context.MODE_PRIVATE);
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
//do whatever you want after reboot or fire alarm again
【讨论】:
以上是关于重启后Android警报重置不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在android oreo中设备重启后PeriodicWorkRequest不起作用
JavaScript 警报在 Android WebView 中不起作用
光子。在 Android 上重启 WI-FI 后 OnRoomListUpdate 不起作用
Android 警报管理器 setExactAndAllowWhileIdle() 在打盹模式下的 Android 7.0 Nougat 中不起作用