大佬教程收集整理的这篇文章主要介绍了android – 为广播接收器创建多个AlarmManager?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我通过AlarmManager调用BroadcastReceiver它对我来说很好.
但
这次我需要什么
我想创建多个AlarmManager,它调用相同的BroadcastReceiver类.
这个过程的方法是什么?
解决方法:
您可以通过使用与所使用的PendingIntent不同的请求@L_673_4@设置警报来实现.确保每个警报都有唯一的请求@L_673_4@.然后用一个广播接收器接收它们.
要记住的另一件事是,如果设备重新启动,则待处理的意图不再存在.因此,您必须使用另一个接收器来确定设备是否重新启动.您必须保存唯一的请求@L_673_4@,然后当设备重新启动时,您必须使用相同的请求@L_673_4@恢复警报.希望能帮助到你.
编辑:
广播接收器
package com.your.package;
import android.content.broadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String Noti_title = intent.getExtras().getString("title");
String Noti_message = intent.getExtras().getString("notes");
int noti_code = intent.getExtras().geTint("code");
Log.d("AlarmReciever", Noti_title + " " + Noti_messagE);
Intent myIntent = new Intent(context, Notificationservice.class);
myIntent.putExtra("title", Noti_titlE);
myIntent.putExtra("notes", Noti_messagE);
myIntent.putExtra("code", Noti_codE);
context.startservice(myIntent);
}
}
服务:
package com.your.package;
import android.app.Notification;
import android.app.@L_874_10@;
import android.app.pendingIntent;
import android.app.service;
import android.content.Intent;
import android.media.ringtone;
import android.media.@L_865_11@manager;
import android.net.Uri;
import android.os.IBinder;
public class Notificationservice extends service {
private @L_874_10@ mManager;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
@SuppressWarnings({ "static-access", "deprecation" })
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
String Noti_title = intent.getExtras().getString("title");
String Noti_message = intent.getExtras().getString("notes");
int noti_Code = intent.getExtras().geTint("code");
mManager = (@L_874_10@) this.getApplicationContext().getSystemservice(this.getApplicationContext().NOTIFICATION_serviCE);
Intent intent1 = new Intent(this.getApplicationContext(), MainActivity.class);
Notification notification = new Notification(R.drawable.ic_launcher , Noti_title , System.currentTimeMillis());
intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOp);
PendingIntent pendingNotificationIntent = PendingIntent.getActivity(this.getApplicationContext(), 0, intent1, PendingIntent.FLAG_updatE_CURRENT);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.setLatestEvenTinfo(this.getApplicationContext(),Noti_title , Noti_message , pendingNotificationIntent);
notification.vibrate = new long[] { 100L, 100L, 200L, 500L };
mManager.notify(Noti_Code , notification);
try {
Uri notification_uri = @L_865_11@manager.getDefaultUri(@L_865_11@manager.TYPE_NOTIFICATION);
ringtone r = @L_865_11@manager.getringtone(getApplicationContext(), notification_uri);
r.play();
} catch (Exception E) {}
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
}
用法:
public void SetAlarm(Calendar calendar, int reqCodE) {
String datename = idea.getText().toString();
String dateNote = note.getText().toString();
Log.d("SetAlarm Texts", "Date : " + datename + " Note: " + dateNotE);
Intent myIntent = new Intent(mActivity, AlarmReceiver.class);
myIntent.putExtra("title", "Her : " + dateName);
myIntent.putExtra("notes", dateNotE);
myIntent.putExtra("code", reqCodE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(mActivity,
reqCode, myIntent, 0);
AlarmManager alarmManager = (AlarmManager) mActivity
.getSystemservice(Context.ALARM_serviCE);
alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(),
pendingIntent);
}
以上是大佬教程为你收集整理的android – 为广播接收器创建多个AlarmManager?全部内容,希望文章能够帮你解决android – 为广播接收器创建多个AlarmManager?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。