16.4.2數(shù)據(jù)傳遞機制
(1)使用Activity系統(tǒng)函數(shù)傳遞數(shù)據(jù)
(2)使用自定義接口函數(shù)傳遞數(shù)據(jù)
(3)使用廣播消息傳遞數(shù)據(jù)
示例代碼如下:
publicstatic void registerApiListener(Context context, BroadcastReceiver receiver,String actionId) {
LocalBroadcastManager.getInstance(context).registerReceiver(receiver,new IntentFilter(actionId));
}
privatevoid sendResponseData(Response response) {
Intent intent = new Intent(API_ACTION_RAW_RESPONSE);
intent.putExtra(API_RESPONSE_OBJECT,response);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}
@Override
public void onReceive(Context context,Intent intent) {
Serializable dataObject =
intent.getExtras().getSerializable(ApiService.API_RESPONSE_OBJECT);
Object responseObject =
((Response)dataObject).getResponseObject();
processResponseObject(context,responseObject);
LocalBroadcastManager.getInstance(context).unregisterReceiver(this);
}
用這種方式可以解決類似A->B->C->A這樣多級Activity/Fragment間使用
startActivityForResult/onActivityResult這種機制無法傳遞數(shù)的問題是鬼。