我有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