从警报启动特定 Activity - 即使应用程序已关闭
Launching a specific Activity from an Alarm - even when application is closed
我正在寻找使用 AlarmManager
来启动一个特定的 activity(即不是我的主要那个),但似乎无法弄清楚如何去做。
我可以使用在另一个答案中找到的代码来启动主要 activity(应用程序正常启动时打开的那个),但我想在我的应用程序中启动特定的 activity .
有办法吗?我看到的所有答案都只涉及将应用程序打开到其主 activity。
这是我目前的代码:
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 我正在打开以执行可以复制我的 Alarm Activity 的特定代码部分希望跳到?
IE。如果这是一个限制,也许打开主 activity 然后 运行 代码打开警报 activity 如果主 activity "knows" 它是由报警。
试试这个,这里给出的基本解决方案
AlarmManager, BroadcastReceivers, Activities
只需构建一个常规 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
的 class 名称。
我正在寻找使用 AlarmManager
来启动一个特定的 activity(即不是我的主要那个),但似乎无法弄清楚如何去做。
我可以使用在另一个答案中找到的代码来启动主要 activity(应用程序正常启动时打开的那个),但我想在我的应用程序中启动特定的 activity .
有办法吗?我看到的所有答案都只涉及将应用程序打开到其主 activity。
这是我目前的代码:
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 我正在打开以执行可以复制我的 Alarm Activity 的特定代码部分希望跳到? IE。如果这是一个限制,也许打开主 activity 然后 运行 代码打开警报 activity 如果主 activity "knows" 它是由报警。
试试这个,这里给出的基本解决方案 AlarmManager, BroadcastReceivers, Activities
只需构建一个常规 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
的 class 名称。