gpt4 book ai didi

java - AlarmManager BroadcastReceiver,onReceive 从未被调用

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:23 24 4
gpt4 key购买 nike

我正在制作一个闹钟应用程序,我想测试 AlarmManager 类来安排一个事件让我在应用程序关闭时执行,而不是常规操作系统警报我自己的自定义警报,这就是我不使用 AlarmClock 类的原因。由于某种原因,我的类中扩展 BroadcastReceiver 的 OnReceive() 方法永远不会被调用?我希望你们能帮忙。另外,如果有更好的技术来实现预定的中断,我很高兴知道,就像您的输入一样。另请注意,我尝试过像这样放置接收者标签

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

在我的 list 中的应用程序标签之间,但我得到了相同的结果,我也知道我在类定义中拼写错误了 Reciever,但我在整个项目中保持一致。

这是我的 maifest 文件

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="Alarm_clock_app.Alarm_clock_app" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
<uses-sdk android:minSdkVersion="16" />
<application android:label="Alarm_clock_app">
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" />
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<uses-permission android:name="android.permission.VIBRATE" />
</manifest>

这是我在 onCreate() 内的主 Activity 中调用的方法,该方法位于我的主 Activity 类内

 public void sched()
{


Intent intent = new Intent(this,typeof(MyReciever));//create an intent with our custom broadcast reciever

PendingIntent pIntent = PendingIntent.GetService(this,0,intent,PendingIntentFlags.UpdateCurrent);//get a pending intent made from our intent

AlarmManager alarM = (AlarmManager) GetSystemService(AlarmService);//get alarm manager

alarM.Set(AlarmType.RtcWakeup, DateTime.Now.Millisecond + 5 * 1000, pIntent);//schedule the alarm for 5,000 ms from now

}

这是我扩展广播接收器的类

   [BroadcastReceiver(Enabled = true, Process = ":remote")]
class MyReciever: BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
Console.WriteLine("alarm has occuered");

}
}

最佳答案

尝试更改警报的第一个参数。设置方法和/或使用日历日期设置:

{Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 5);
alarM.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pIntent);}

关于java - AlarmManager BroadcastReceiver,onReceive 从未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37178545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com