我有2个活动,每个单独的应用程序。 活性1上有一个按钮,用户可以点击并调用使用其意图第二活动onClick()
方法:
Intent myIntent = getPackageManager().getLaunchIntentForPackage(com.myProject.Activity2);
startActivityForResult(myIntent, 600);
这正常启动活性2,从活动1,但onActivityResult
被称为活性1之前onCreate
在活性2被调用,而不是onBackPressed()
我设置了回报意图。
这里是onCreate
的活性2方法:
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
这是当前版本的onBackPressed
方法活性2:
@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中有活性2以下意图过滤器:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
我核实,我的launchMode
是standard
(而不是singleTask
等),如建议在这里和警告我请求代码不为负这里 。 我也试过android:launchMode="singleTop"
,但是这是一个还没有走。
我也试过不调用finish()
在onBackPressed()
的活性2所提到这里 (也只有super.onBackPressed()
的建议在这里 ),并再次调用它的建议在这里 。
另外我想注释掉行intent.putExtra("Stuff", someStuff);
因为它似乎造成麻烦这个人 。
任何想法,我可能是做错了什么?