我有 2 个活动,每个活动都在单独的应用程序中。 Activity 1 有一个用户可以单击的按钮,它使用其 Intent 调用第二个 ActivityonClick()
method:
Intent myIntent = getPackageManager().getLaunchIntentForPackage(com.myProject.Activity2);
startActivityForResult(myIntent, 600);
这可以正确地从 Activity1 启动 Activity2,但是onActivityResult
之前在 Activity1 中被调用onCreate
在 Activity2 中调用,而不是在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
is standard
(并不是singleTask
等)按照建议here我的请求代码不是负数,正如警告的那样here。我也尝试过android:launchMode="singleTop"
,但这也是不行的。
我也尝试过不打电话finish()
in onBackPressed()
对于如上所述的 Activity2here(也只用super.onBackPressed()
按照建议here)并再次按照建议调用它here.
另外我尝试注释掉该行intent.putExtra("Stuff", someStuff);
因为这似乎给某人带来了麻烦这个人.
关于我可能做错了什么有什么想法吗?