我有两个应用程序,A&乙
Application A
有一个service
等待申请B进入前瞻。现在,当应用程序B进入前台时,A的服务调用执行特定任务的A的活动。
现在从A的这个活动开始,我想回到应用程序B,从那里我来到B的活动。
我现在正在尝试的是:
在使用中,
String foregroundProcess = getForgroundProcessName();
现在,如果它与所需的流程匹配,我正在调用一个活动:
Intent intent = new Intent(getApplicationContext(),ActivityOfApplicatinA.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("foregroundProcess",foregroundProcess);
startActivity(intent);
现在,从此活动ActivityOfApplicatinA
开始,我想返回应用B
,其工作原理如下:
Intent intent = getIntent();
name = intent.getStringExtra("foregroundProcess");
Log.d(TAG, "The foreground process was:" + name);
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(name);
startActivity(LaunchIntent);
finish();
我的方法的问题是我没有回到之前的应用程序状态B.它只是重新启动应用程序B.我不希望这种情况发生。我想用以前的状态打开应用程序B.
请帮我解决这个问题。
答案 0 :(得分:1)
来自docs FLAG_ACTIVITY_REORDER_TO_FRONT
:
Intent LaunchIntent = m_context.getPackageManager().getLaunchIntentForPackage(packageNameOfAppB);
LaunchIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(LaunchIntent);
注意:强> 仅当应用程序B在活动历史记录stac k。
之前和之后启动时才有效