Android   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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,请注明来意。
标签: