我的A类调用了一个startActivityForResult:A类是tabactivity的一个tab中的activitygroup
Intent intent = new Intent(this, ClassB.class);
startActivityForResult(intent, "STRING");
ClassB是一个普通的activity,不在tabactivity中,它是单独的
Intent intent = this.getIntent();
intent.putExtra("SOMETHING", "EXTRAS");
this.setResult(RESULT_OK, intent);
finish();
但是在 A 类 onactivityResult 中没有收到任何信息,也没有执行。如果我将 classA 放在 tabactivity 之外,我的应用程序就可以了。我读过
How to setResult() for a TabActivity which contains activity for tabs
How to return a result (startActivityForResult) from a TabHost Activity?
但没有解决我的问题,谁能给点建议,代码更好,谢谢
编辑: 在 A 类中,我添加:
public class UpdateImageBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("temp","34353");
}
}
/* (non-Javadoc)
* @see android.app.Activity#onPause()
*/
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
unregisterReceiver(updateImageBroadcastReceiver);
}
/* (non-Javadoc)
* @see android.app.Activity#onResume()
*/
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
updateImageFilter = new IntentFilter("ACTION_CHANGE_TAB");
updateImageBroadcastReceiver = new UpdateImageBroadcastReceiver();
registerReceiver(updateImageBroadcastReceiver, updateImageFilter);
}
B 类:
Intent intent = new Intent("ACTION_CHANGE_TAB");
intent.putExtra("path", f.getAbsolutePath());
sendBroadcast(intent);
// FileListSelectActivity.this.setResult(RESULT_OK, intent);
finish();
但我无法打印:Log.i("temp","34353");
最佳答案
尝试使用广播接收器。您可以在 Activity B 中覆盖 onStop(),从 Activity B 广播事件并在 Activity A 中收听。
关于android - 如何将结果(startActivityForResult)从 Activity 返回到 TabHost Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7256098/