我有两个应用程序,A和B.在应用程序A中,我添加了一个打开应用程序B的按钮。 单击按钮时,如果App B尚未运行,我想打开它,否则我想将应用程序带到前面。
这是我使用的代码:
Intent intent = getPackageManager()
.getLaunchIntentForPackage(
"com.myapp.something");
if (intent != null) {
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
代码似乎有效,但问题是,如果我从应用程序A(使用此代码)打开应用程序B,然后直接单击应用程序B的图标,我会得到两个应用程序实例,这是不受欢迎的。< / p>
如何像代码一样打开应用程序,即使点击了应用程序的图标也可以获得相同的实例?
答案 0 :(得分:0)
添加Intent.FLAG_ACTIVITY_CLEAR_TOP
答案 1 :(得分:0)
试试这个::
Intent intent = context.getPackageManager().getLaunchIntentForPackage(yr packageName);
if (intent != null) {
/* We found the activity now start the activity */
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} else {
/* Bring user to the market or let them choose an app? */
intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("market://details?id=" + packageName));
startActivity(intent);
}