将应用程序带到前台,如果它已经在运行,而不是在android中创建它的新实例

时间:2016-07-19 11:09:21

标签: android android-intent

在我的应用程序中,我想启动应用程序(消息,联系人等),如果我的已启动应用程序(消息,联系人等)已经在后台运行我希望它带来前面。我尝试使用moveTaskToFront()但是它没有从API 23(Lollipop)上面实现。所以我最终得到了这段代码:

Intent intent=getPackageManager().getLaunchIntentForPackage("com.android.mms");
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

通过使用此代码,如果我从我的应用程序内部启动消息,它将启动,如果我再次从我的应用程序内部启动相同的应用程序,它将完全恢复它并从我们离开它的地方继续。 但是,当我从我的默认Android启动器启动相同的消息传递应用程序时,它只是在我已经运行的消息应用程序的上方创建消息传递应用程序的新实例,该应用程序已由我的应用程序启动。 我不知道解决这个问题的方法。请帮助我......

1 个答案:

答案 0 :(得分:0)

使用以下方法在您的应用中调用意图,如下所示。

Intent intent = new Intent(CONTEXT, TARGET_ACTIVITY.CLASS);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);