如何从背景恢复应用程序,如点击应用程序启动器图标?

时间:2017-11-29 06:41:36

标签: android android-intent service

我正在为Android开发贴纸键盘。在键盘布局中,我有button。当我最小化应用程序然后打开键盘然后点击按钮,我想在最新的屏幕上打开我的应用程序。

有步骤:

  1. 打开应用(LauncherActivity)
  2. 转到活动1(TheFirstActivity)
  3. 转到活动2(TheSecondActivity)
  4. 最小化应用
  5. 打开另一个应用并打开我的键盘
  6. 点按按钮。
  7. 当我点击按钮时,我希望我的应用程序在活动2中打开,应用程序状态将恢复为应用程序最小化时的状态。

    这是我的代码:

     Intent intent = new Intent(this, LauncherActivity.class);
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     startActivity(intent);
    

3 个答案:

答案 0 :(得分:0)

使用此

Intent intent = new Intent(this, yourActivity.class);
// set the new task and clear flags
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

答案 1 :(得分:0)

将此代码用于此

    Intent intent = new Intent(this, LauncherActivity.class);
 // set the new task, clear flags and From History flag 
   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
   Intent.FLAG_ACTIVITY_CLEAR_TASK | 
   Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
   startActivity(intent);

答案 2 :(得分:0)

我将采取这种情况:

  • 我假设您有一个后台服务,您想从那里以暂停状态在后台恢复活动
  • ,此外,您只想恢复他以前的所有状态,就像系统在您的应用暂停或单击通知时完成操作一样。

在这种情况下,您可以使用下面的代码

   public void resumeActivityFromBackground(Intent intent, boolean restart) {
    if (intent == null)
        intent = new Intent(BackgroundServiceClass.this, MainActivity.class);
    intent.putExtra("activity_started_from_service", true);
    intent.setFlags(
            Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
                    | Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_SINGLE_TOP
                    | Intent.FLAG_ACTIVITY_CLEAR_TOP
                    /*| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED*/);
    intent.setAction(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    //PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);
    startActivity(intent);
    stopSelf(); //Use this to stop the service if you are launching from a background service.
}
  • Intent.FLAG_ACTIVITY_NEW_TASK-遗嘱有助于将现有活动从后台移出而无需重新创建新实例。
  • Intent.FLAG_ACTIVITY_CLEAR_TOP-将确保您要恢复的活动实际上是最重要的活动

这对我有用。