我有2个活动,每个活动在单独的应用程序中。活动1有一个按钮,用户可以点击并在其onClick()
方法调用使用意向的第二个活动:Android onActivityResult早期调用
Intent myIntent = getPackageManager().getLaunchIntentForPackage(com.myProject.Activity2);
startActivityForResult(myIntent, 600);
这正确地从活动1启动活性2,但onActivityResult
被称为活性1 onCreate
之前被称为活性2,而不是在onBackPressed()
的地方,我设置了返回意向。
这里是活性2的onCreate
方法:
@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
等),建议here和我的请求代码是不负面的,因为警告here。我也试过android:launchMode="singleTop"
,但那也是不行的。
我也试过提到here(也只有super.onBackPressed()
的建议here),并再次调用它的建议here不是活性2调用onBackPressed()
finish()
。
此外,我试图注释掉intent.putExtra("Stuff", someStuff);
行,因为它似乎造成this person麻烦。
任何想法,我可能做错了什么?
非常感谢您回来并发布您的解决方案。我一直在这个问题上停留了很长时间,我也尝试了在你的问题中遇到的所有解决方案都无济于事。这固定它,并使我的一天更好= = – 2012-10-10 20:02:54
我使用startActivityForResult WITHOUT setClassName或完全限定的名称遍布我的项目,他们都工作完美,除了一种情况。所以我在这种情况下尝试了你的解决方案,但它没有任何区别。 – user316117 2013-03-28 19:10:21
2h !!谢谢你的解决方案 – Anthone 2014-09-10 16:55:57