我希望使用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浏览器。如果这是一个限制,可以打开主要活动,然后运行代码打开警报活动,如果主要活动"知道"它被警报打开了。
答案 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
的班级名称。