从警报启动特定活动 - 即使应用程序已关闭

时间:2018-03-11 16:49:56

标签: java android android-intent android-activity alarmmanager

我希望使用AlarmManager来启动特定活动(即不是我的主要活动),似乎无法弄清楚如何做到这一点。

我可以使用另一个答案中的代码启动主要活动(正常启动应用程序时打开的活动),但我想在我的应用程序中启动一个特定的活动。

有办法做到这一点吗?我所看到的所有答案仅涉及将应用程序打开到其主要活动。

这是我到目前为止的代码:

public class Alarm extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Intent i = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
    context.startActivity(i);
}

感谢您的帮助。

编辑:如果这不可能,有没有办法告诉我打开的MainActivity执行一个特定的代码段,可以复制我希望跳转到的警报活动? IE浏览器。如果这是一个限制,可以打开主要活动,然后运行代码打开警报活动,如果主要活动"知道"它被警报打开了。

2 个答案:

答案 0 :(得分:0)

试试这个,这里给出的基本解决方案 AlarmManager, BroadcastReceivers, Activities

答案 1 :(得分:0)

只需构建常规Intent

Intent i = new Intent(context, ActivityToLaunch.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
context.startActivity(i);

ActivityToLaunch.class替换为应启动的Activity的班级名称。