gpt4 book ai didi

android - 当应用程序从后台清除时,AlarmManager 被丢弃

转载 作者:行者123 更新时间:2023-11-29 15:12:43 48 4
gpt4 key购买 nike

这就是我创建警报的方式。当应用程序仍在后台运行时,将触发警报。但是当它从最近的应用程序中清除时,警报就会被丢弃。我正在注册一个新接收器并提供一个独特的操作来区分两个警报。我的代码有没有错误。

        String filter_action = "myPackageName" + request_code_value +"_time";

IntentFilter filter = new IntentFilter(filter_action);

registerReceiver(new AlarmReciever(), filter);

Intent intent = new Intent(filter_action);
intent.putExtra(getString(R.string.get_current_intent_value), request_code_value);
intent.putExtra(getString(R.string.alarmtext), alarm_title);
intent.putExtra(getString(R.string.alarm_time), newAlarm_Choose_Alarm_Value.getText().toString());

Calendar calNow = Calendar.getInstance();
Calendar calSet = (Calendar) calNow.clone();


PendingIntent pendingIntent = PendingIntent.getBroadcast(this, request_code_value, intent, 0);


calSet.setTimeInMillis(timeInMillis);

if (calSet.compareTo(calNow) <= 0) {
// Today Set time passed, count to tomorrow
calSet.add(Calendar.DATE, 1);
}

alarmManager.set(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(), pendingIntent);

list 文件。

<receiver android:name="com.bigbangpartners.YoWakeUp.activities.AlarmReciever" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="AlarmManager_Start" />
</intent-filter>
</receiver>

请帮帮我。提前致谢。

最佳答案

如果您在 Activity 中以编程方式注册和取消注册 BroadcastReceiver,则以这种方式创建的 BroadcastReceiver 将保留在只要应用程序进程存在就存在。因此,当您从最近使用的应用列表中删除您的应用时,这个 BroadcastReceiver 实际上也被销毁了。

另一方面,在 list 中注册的 BroadcastReceiver 是 Android 应用程序的全局永久组件,无论应用程序进程是否处于 Activity 状态,它都会永远存在。

如果您希望即使应用程序不在前台也能激活您的警报,那么您需要在应用程序 list 中注册 BroadcastReceiver 并指定警报操作。你没有这样做,我相信这是你问题的根源。

你应该做什么:

1. 像这样在 list 中定义您的 BroadcastReceiver:

<receiver android:name="com.bigbangpartners.YoWakeUp.activities.AlarmReciever" >        
</receiver>

2. 删除应用代码中对 registerReceiver()unRegisterReceiver() 的所有调用,因为这不是必需的。

3. 像这样定义您的警报 Intent:

Intent intent = new Intent(this, AlarmReceiver.class);

其余代码保持不变。首先尝试这个,看看它是否有效。

关于android - 当应用程序从后台清除时,AlarmManager 被丢弃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28854933/

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