![](/img/trans.png)
[英]OnActivityResult is not called when sending data from fragment to another activity
[英]get data onActivityResult from another application
我有兩個應用程序 A 和 B。
應用A
以下代碼我啟動 B 應用程序以從 A 應用程序活動中獲取結果 ..
String packageName = "com.cm.applicationb";
PackageManager manager = context.getPackageManager();
Intent i = manager.getLaunchIntentForPackage(packageName);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.putExtra("grand_total", "2500");
i.setAction(packageName);
startActivityForResult(i, REQUEST_DATA);
從應用程序調用 onActivityResutl
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==REQUEST_DATA)
if (resultCode == Activity.RESULT_OK) {
me=data.getStringExtra("Obj");
}
Toast.makeText(getApplicationContext(),me,Toast.LENGTH_LONG).show();
}
B應用setResult數據
Intent i=new Intent();
i.putExtra("Obj", "object");
setResult(Activity.RESULT_OK, i);
finish();
曾經從 onActivityResult 重新運行空數據和結果代碼。 我們如何解決? 不可能從另一個應用程序 setREsult 獲取有關 AcitivityResult 的數據。 任何人都請幫助我。 非常感謝。
刪除finish()
並在B
像這樣調用:
@Override
public void onBackPressed() {
Intent data = new Intent();
Bundle bundle = new Bundle();
bundle.putString("Obj", "Obj_Data");
data.putExtras(bundle);
setResult(Activity.RESULT_OK, data);
super.onBackPressed(); // this calls finish(); internally.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.