[英]onActivityResult byte[] data returning null no matter how large the image
[英]OnActivityResult() returning null data
我知道這個問題已經被問過很多次了,我正確地遵循了所有步驟,但仍然在我的 FirstApplication 中獲得了空數據
FirstApplication 開始意圖使用 Mainactivity 從庫類獲取結果,該類使用構造函數中的活動變量初始化:
sendIntent.putExtra("data", bundle);
sendIntent.setType("text/plain");
sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (sendIntent.resolveActivity(context.getPackageManager()) != null) {
activity.startActivityForResult(sendIntent, requestCode);
}
SecondApplication獲取意圖並進行必要的操作
Intent intent = getIntent();
Bundle bundle = intent.getBundleExtra("data");
if (bundle!=null){
type = bundle.getString("type");
num1 = Integer.parseInt(bundle.getString("num1"));
num2 = Integer.parseInt(bundle.getString("num2"));
if (type.equalsIgnoreCase("add")){
result = String.valueOf(num1+num2);
}else {
result = String.valueOf(num1-num2);
}
}
將結果發送到 FirstApplication
Bundle bundle1 = new Bundle();
if (bundle1!=null){
Intent send = new Intent();
bundle1.putString("result", result);
send.putExtra("datasend", bundle1);
setResult(Activity.RESULT_OK, send);
finish();
}
在 FirstApplication MAinActivity 中接收結果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
Bundle bundle = data.getBundleExtra("datasend");
result = bundle.getString("result");
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
但在這里我收到 resultCode 0 和數據空。 任何幫助將不勝感激。 謝謝你。
問題出在這一行
sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
通過調用Intent.FLAG_ACTIVITY_NEW_TASK
您將在返回堆棧頂部設置第二個活動並取消startActivityForResult()
的效果
所以應該刪除它以取回結果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.