【问题标题】:Resume other apps programmatically以编程方式恢复其他应用程序
【发布时间】:2017-02-08 09:43:50
【问题描述】:

如何从最近的应用标签恢复其他应用?例如,如果我们编写了一个启动器应用程序,并且我们不想每次启动应用程序的主要活动。

我尝试过类似的方法:

    PackageManager manager = context.getPackageManager();
    Intent         intent  = manager.getLaunchIntentForPackage(packageName);
    if (intent == null) {
        Toast.makeText(context, "app does not exist", Toast.LENGTH_SHORT).show();
        return;
    }
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    context.startActivity(intent);

但它不起作用 - 我应该设置什么标志?

解决办法:

好的。我只需要更改这部分:

    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    context.startActivity(intent);

到这里:

    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    context.startActivity(intent);
    context.finishAffinity();

【问题讨论】:

    标签: android android-intent launcher


    【解决方案1】:

    试试这个

      Intent launchAppIntent = context.getPackageManager().getLaunchIntentForPackage(packageName);
                 if (launchAppIntent != null) {    
                   launchAppIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                   context.startActivity(launchAppIntent);
                   finishAffinity();
          }
    

    【讨论】:

    • 它正确打开了想要的活动,但在我的应用程序中(在任务管理器中我可以看到两个相似的视图 - 从应用程序 A 和我的应用程序)我想回到这个应用程序 A
    • 添加finishAffinity();在 startActivity(); 之后
    • 不幸的是它什么也没改变。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多