我已经阅读了很多关于WakefulBroadcastReceiver
的内容......但是对于如何从主要活动中调用此内容并没有了解。无论何时我搜索如何拨打WakefulBroadcastReceiver
,结果总会告诉我如何从IntentService
拨打WakefulBroadcastReceiver
...
要致电IntentService
,我们会在活动或startService()
中编写代码“WakefulBroadcastReceiver
”...
致电BroadcastReceiver
我们写
AlarmManager am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
PendingIntent.getBroadcast(this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT));
但是我找不到任何地方如何拨打WakefulBroadcastReceiver
...
请帮忙..
答案 0 :(得分:0)
android.support.v4.content.WakefulBroadcastReceiver是一个辅助类,它接收设备唤醒事件。
你应该使用onReceive()方法来调用服务或执行任务。
WakefulBroadcastReceiver使用唤醒锁,因此您必须在AndroidManifest.xml中提供WAKE_LOCK权限。 WakefulBroadcastReceiver实现为
public class AlarmReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
MainActivity.getTextView2().setText("Enough Rest. Do Work Now!");
Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
Ringtone ringtone = RingtoneManager.getRingtone(context, uri);
ringtone.play();
}
}
in menifest add
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
像这样调用AlarmReceiver:
Intent myIntent = new Intent(MainActivity.this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent, 0);
还在清单中添加接收器标签:
<receiver android:name=".AlarmReceiver"/>
有关完整的工作样本,请参阅以下链接:http://www.concretepage.com/android/android-alarm-clock-tutorial-to-schedule-and-cancel-alarmmanager-pendingintent-and-wakefulbroadcastreceiver-example