AlarmManager无法启动BroadcastReceiver

编程入门 行业动态 更新时间:2024-10-23 22:36:07
本文介绍了AlarmManager无法启动BroadcastReceiver的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试使用BroadcastReceiver和AlarmManager设置一次警报。我不知道为什么它不起作用。我究竟做错了什么?我没有例外,没有日志,没有来自IDE的建议,一切似乎都很好,但是从来没有调用我的BroadcastReceiver中的onReceive方法。

I am trying to use BroadcastReceiver and AlarmManager to set a one-shot alarm. I have no idea why isn`t it working. What am I doing wrong? I have no exceptions, no logs about, no suggestions from IDE, everything seems fine, but onReceive method in my BroadcastReceiver is never called.

public void setAlarm(Context mContext) { AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(mContext, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 505151550 ,intent, PendingIntent.FLAG_UPDATE_CURRENT); Calendar cal = Calendar.getInstance(); cal.add(Calendar.SECOND, 20); alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); Log.d("alarm",cal.getTime().toString()); }

我从活动中称呼它:

new MyManager().setAlarm(this);

但我也尝试过: new MyManager()。setAlarm(MyActivity。 this);

public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.d("alarm","got into alarm receiver"); }}

在AndroidManifest.xml中:

in AndroidManifest.xml :

<receiver android:name="com.example.AlarmReceiver"></receiver>

但我也尝试过

<receiver android:name=".AlarmReceiver"></receiver>

推荐答案

尝试如下:它将在30秒后触发警报

try like this: it will fire alarm after 30 second.

public class TestAlarmManager extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setAlarm(getApplicationContext()); } public void setAlarm(Context mContext) { Intent intent = new Intent(this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast( this.getApplicationContext(), 234324243, intent, 0); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (30 * 1000), pendingIntent); Toast.makeText(this, "Alarm set in " + 30 + " seconds",Toast.LENGTH_LONG).show(); } }

AlarmReceiver.java

AlarmReceiver.java

public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent arg1) { Log.e("alarm","got into alarm receiver"); Toast.makeText(context, "Alarm Started..", Toast.LENGTH_LONG).show(); } }

AndroidManifest.xml:

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="schemas.android/apk/res/android" package="com.think.androidteststackoverflow" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher_3" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.think.androidteststackoverflow.TestAlarmManager" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".AlarmReceiver"></receiver> </application> </manifest>

更多推荐

AlarmManager无法启动BroadcastReceiver

本文发布于:2023-11-27 04:30:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1636598.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:无法启动   AlarmManager   BroadcastReceiver

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!