我有 2 个活动,每个活动都在单独的应用程序中。Activity1 有一个用户可以单击的按钮,它在其onClick()
方法中使用意图调用第二个活动:
Intent myIntent = getPackageManager().getLaunchIntentForPackage(com.myProject.Activity2);
startActivityForResult(myIntent, 600);
这会正确地从 Activity1 启动 Activity2,但onActivityResult
会在 Activity2 中onCreate
调用之前在 Activity1 中调用,而不是在onBackPressed()
我设置返回意图的位置。
这是onCreate
Activity2的方法:
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
这是onBackPressed
Activity2 方法的当前版本:
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("Stuff", someStuff);
if(getParent()==null){
setResult(Activity.RESULT_OK, intent);
}else{
getParent().setResult(Activity.RESULT_OK, intent);
}
finish();
super.onBackPressed();
}
我的 AndroidManifest.xml 具有以下 Activity2 意图过滤器:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
我验证了我launchMode
的是standard
(而不是singleTask
等),正如这里所建议的那样,并且我的请求代码并不像这里警告的那样为负。我也试过android:launchMode="singleTop"
了,但这也是不行的。
我还尝试不调用此处提到的 Activity2 finish()
(也按照此处的建议),并再次按照此处的建议调用它。onBackPressed()
super.onBackPressed()
此外,我尝试注释掉该行intent.putExtra("Stuff", someStuff);
,因为它似乎给这个人造成了麻烦。
关于我可能做错了什么的任何想法?