相关疑难解决方法(0)

有没有办法检查是否已经设置了警报?

我被卡住了.当我的应用程序启动时,我想检查我之前设置的警报是否存在.如果没有,那么我想设置它.

我提到了这个解决方案.我试图匹配这样的意图:

Intent intent = new Intent();
        intent.setAction("com.vit.upload");
        PendingIntent pIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_NO_CREATE);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.还有什么工作?

android alarmmanager

31
推荐指数
3
解决办法
2万
查看次数

android如何比较未决意图

PendingIntent.FLAG_NO_CREATE的文档内容如下:

指示如果描述的PendingIntent尚不存在的标志,则只返回null而不是创建它.

我的问题:用什么标准来比较PendingIntents?

我猜这个标志使用了PendingIntent.equals,但是我不确定该函数使用的是什么标准.它是使用动作,requestCode,类别,额外(我猜不是)等?

语境:

如果我的警报尚未设置,我想以待定意图启动警报.具体来说,我正在听这个答案.

Intent i = new Intent(applicationContext, MyService.class);
i.setAction("myAction");
PendingIntent pi = PendingIntent.getService(applicationContext, /*requestCode*/0, i, PendingIntent.FLAG_NO_CREATE);
if (pi != null) {
  AlarmManager alarmMgr = (AlarmManager)applicationContext.getSystemService(Context.AlarmService);
  alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, AlarmManager.INTERVAL_HOUR, AlarmManager.INTERVAL_HOUR, pi);
}
Run Code Online (Sandbox Code Playgroud)

android alarmmanager android-intent android-pendingintent

21
推荐指数
1
解决办法
2704
查看次数

无法检查AlarmManager是否设置了警报

我正在检查AlarmManager是否已使用此答案设置了警报.

以下是我的代码段.

boolean alarmUp = (PendingIntent.getBroadcast(MainActivity.this, 0,
    new Intent(MainActivity.this, AlarmReceiver.class), PendingIntent.FLAG_NO_CREATE) != null);
if (alarmUp) {
    // alarm is set; do some stuff
}

Intent alarmIntent = new Intent(MainActivity.this, AlarmReceiver.class);
final PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 10 * 1000, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

但是,alarmUp始终设置为true.也就是说,无论我是否设置闹钟,每当我重新启动我的应用时,它都会告诉我这alarmUp是真的(我通过制作一个来检查它Toast).

请帮助我出错的地方.

service android alarmmanager android-intent

12
推荐指数
1
解决办法
7107
查看次数

Firebase发出太多警报

我已经有一个每天都会发出警报的警报FLAG_UPDATE_CURRENT.这是开发人员控制台的日志.

java.lang.SecurityException: !@Too many alarms (500) registered from pid 32326 uid 10206
    at android.os.Parcel.readException(Parcel.java:1540)
    at android.os.Parcel.readException(Parcel.java:1493)
    at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:206)
    at android.app.AlarmManager.setImpl(AlarmManager.java:428)
    at android.app.AlarmManager.set(AlarmManager.java:215)
    at com.google.firebase.iid.FirebaseInstanceIdService.zzagl(Unknown Source)
    at com.google.firebase.iid.FirebaseInstanceIdService.zzd(Unknown Source)
    at com.google.firebase.iid.FirebaseInstanceIdService.zza(Unknown Source)
    at com.google.firebase.iid.FirebaseInstanceIdService.zzm(Unknown Source)
    at com.google.firebase.iid.zzb$2.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud)

我正在使用Firebase 9.6.1.


更新:

public static void setAlarm(Context context, boolean isSet) {
  try {
     AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
     Intent intent = new Intent(context, AlarmReceiver.class);

     boolean isWorking = (PendingIntent.getBroadcast(context,
                SettingsActivity.REQUEST_CODE, intent, PendingIntent.FLAG_NO_CREATE) != null); …
Run Code Online (Sandbox Code Playgroud)

android android-alarms firebase firebase-cloud-messaging

11
推荐指数
1
解决办法
850
查看次数

取消AlarmManager的问题 - PendingIntent

我有一个应用程序,提醒人们完成他们的任务.所以有一个PendingIntent,现在用户可以在他想要的时候删除警报.在这段代码中,只有一个PendingIntent用于多个用户警报,因此我对取消意图附加功能的特定警报感到困惑"pill".其余警报不应取消.我对这个问题一无所知.希望我很清楚.谢谢

Intent intent = new Intent(this, AlarmNotifyReceiver.class);
intent.putExtra("Name_pill", "pill");
sender = PendingIntent.getBroadcast(this,
DatabaseConstants.NOTIFICATION_ID + 1, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(), sender);
updateTheFlag(pillName[(pillName.length-1)]);
Run Code Online (Sandbox Code Playgroud)

android android-pendingintent

10
推荐指数
2
解决办法
1万
查看次数

如果应用程序在android中强制关闭,如何重置警报

如果,我的应用程序使用AlarmManager设置的警报将被清除

  1. 用户强制关闭我在设置中的应用程序.
  2. 一些任务杀手应用程序自动杀死我的应用程序进程.
  3. Android本身杀了我的应用程序,因为前端应用程序需要内存.

请告诉我如何检测它?而是如何设置我的警报,以便所有这些情况不会影响我的警报.

android alarmmanager

10
推荐指数
1
解决办法
6612
查看次数

如何在特定时间排队 WorkManager OneTimeWorkRequest

我有一个场景,我必须在特定时间使用 WorkManager 向用户发出通知。

我如何在特定时间安排工作,即使用户强制杀死应用程序,它也应该显示出来。或应用程序未运行。

我当前的代码如下:

Data d = new Data.Builder().putInt(IntentConstants.SCHEDULE_ID, scheduleData.getScheduleID()).build();
OneTimeWorkRequest compressionWork =
    new OneTimeWorkRequest.Builder(ScheduleWorker.class)
        .setInputData(d)
        .build();
WorkManager.getInstance().enqueue(compressionWork);
Run Code Online (Sandbox Code Playgroud)

java android android-workmanager

3
推荐指数
1
解决办法
2337
查看次数

取消警报管理器并检查是否已设置警报

我有一个警报管理器,我想看看警报是否已经设置,以及是否显示了一个不同的警报对话框,如果尚未设置它.我找到了一些我被告知应该工作的代码,但它不是.此外,如果已设置警报,警报对话框应提供取消警报的选项,但也不起作用.这是我的代码:

boolean alarmUp = (PendingIntent.getBroadcast(Main.this, 1, 
                new Intent(Main.this, Alarm_Receiver.class), 
                PendingIntent.FLAG_NO_CREATE) != null);
        if (alarmUp){
    //Sets up the custom alert dialog layout gathers the selected time for the notifications to be set
    LayoutInflater factory = LayoutInflater.from(this);
    final View time_picker = factory.inflate(R.layout.dialog_layout2, null);
    AlertDialog.Builder alertDialogBuilder2 = new AlertDialog.Builder(this);
    alertDialogBuilder2.setView(time_picker);
    alertDialogBuilder2.setTitle("Select Your Notification Time:");
    alertDialogBuilder2
    .setMessage("Please select the time when you want the notifications to appear on your phone each day. Please note: If your phone restarts or runs out of battery you …
Run Code Online (Sandbox Code Playgroud)

android alarmmanager android-intent android-pendingintent

0
推荐指数
1
解决办法
5227
查看次数