【问题标题】:Alarm preventing activity from finish阻止活动完成的警报
【发布时间】:2015-12-22 06:59:08
【问题描述】:

我在 Android 应用程序中使用警报服务,这里是相同的代码 sn-p

待定意图的创建

Intent intent = new Intent(context, UninstallService.class);
intent.putExtra("APPLICATION_PREFERENCE", applicationPreference);
intent.setAction(intentAction);
PendingIntent pendingIntent = PendingIntent.getService(context,
    intentRequestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT);

安排警报

AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, time, pendingIntent);

安排闹钟后,我在 Activity 上调用 finish,但 Activity 没有完成。它保持打开状态,不知道发生了什么。如果我在 AlarmManager 上注释对 set 方法的调用,并在 Activity 上调用 finish,则该 Activity 将关闭。

这有点奇怪,我不确定我错过了什么。请帮忙。

Android 操作系统:Lollipop (5.0.2 - API 21)

【问题讨论】:

  • 您是否在同一个活动中调用finish()
  • 是的,我正在从同一个活动中调用finish()。该应用程序只有一项活动。是因为服务的生命周期与 Activity 的上下文相关吗?
  • 你能把活动代码贴出来吗

标签: android android-intent android-alarms


【解决方案1】:

试试这个代码。

Intent intent = new Intent(context, UninstallService.class);
intent.setAction(intentAction);
intent.putExtra("APPLICATION_PREFERENCE", applicationPreference);

AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

alarmMgr .setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多