调用另一个另一个应用程序然后回到同一个应用程序之前打开
我有一个Android应用程序A和android应用B. 我想打电话从应用程序A应用程序B和应用B得到一些数据,并返回到相同的应用程序A这是之前打开的。调用另一个另一个应用程序然后回到同一个应用程序之前打开
应用程序A
Intent app = new Intent(Intent.CATEGORY_LAUNCHER);
app.setComponent(new ComponentName("com.abc.applicationA","com.abc.applicationA.MainActivity"));
startActivity(applicationA);
应用B
Intent j = new Intent(Intent.CATEGORY_LAUNCHER);
j.setComponent(new ComponentName("com.abc.applicationB","com.abc.applicationB.MainActivity"));
j.putStringArrayListExtra("Data", data); //data is array list
startActivity(j);
但对于上述实施applicationA推出applicationB然后再当applicationB推出applicationA一旦更多的时间applciationA是launched.so当我回到我将会有第二次调用的applicationA,然后第一次调用applicationB和applicationA。
我的本意是applicationA启动,然后进入applicationB得到一些数据,然后回来之前launcehed相同applicationA。
板球说,startActivityForResult
是这里的正确答案。在活动A,通过调用活动B. startActivityForResult
然后,当您在活动B完成您打开活动B,你会调用setResult
功能,然后finish()
。
我能够从applicationA穿越到应用程序B,并取回applicationA没有得到applicationA叫了两声,但我也想访问applicationA在applicationB对此我不能做它。 – RShenoy
我不明白你的意思是“我也想访问applicationB中的applicationA”。我对你的问题的解释是,你想要这个... –
从App中的Activity A开始,在App B中开始Activity B作为结果。当您在应用程序B的活动B中完成时,setResult,然后调用finish(),它应该返回到应用程序A中的活动A并获得所需的结果。 –
在ApplicationA,
尝试使用startActivityForResult
代替startActivity
。
int REQUEST_CODE = *any Integer as request code*
Intent app = new Intent(Intent.CATEGORY_LAUNCHER);
app.setComponent(new ComponentName("com.abc.applicationB","com.abc.applicationB.MainActivity"));
startActivityForResult(applicationA,REQUEST_CODE);
而且覆盖onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
//check the resultCode and data would contain the extras
}
}
在ApplicationB,使用setResult()
方法。
如何使用AIDL服务 –
'startActivityForResult' –