进程间通信之ContentProvider+BroadCastReceiver

进程间通信之ContentProvider+BroadCastReceiver

1. 将数据通过参数传递给ContentProvider组件。

2. ContentProvider调用CAE处理请求。

3. CAE将响应通过BroadCast传递给UI。

4. 在此之前UI须注册BroadCastReceiver。

String[] projection = null;
String selection = null;
String sortOrder = null;
String[] selectionArgs = null;
selectionArgs = new String[3];
selectionArgs[0] = gateIP;
selectionArgs[1] = userName;
selectionArgs[2] = password;
getContentResolver().query(Login.CONTENT_URI, projection, selection, selectionArgs, sortOrder);
CAEReceiver caeReceiver;
class CAEReceiver extends BroadcastReceiver {
 @Override
 public void onReceive(Context context, Intent intent) {
  String msg = intent.getStringExtra("msg");
  UHomeUtil.log("CAEReceiver.onReceive>>\n" + msg);

  if(gnmk == Gnmk.JDKZ)
  {
   Intent it = new Intent();
   it.setClass(UHomeMain.this, JdkzAct.class);
   startActivity(it);
  }
  UHomeMain.this.unregisterReceiver(this);
 }
}
 public static final String ACTION_CAE = "android.intent.action.CAE_BROADCAST";
caeReceiver = new CAEReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(GConst.ACTION_CAE);
registerReceiver(caeReceiver, filter);
public void sendCAEBroadCast(String msg)
{
 Intent mIntent = new Intent(GConst.ACTION_CAE); 
    mIntent.putExtra("msg", msg); 
    this.getContext().sendBroadcast(mIntent);
}

猜你喜欢

转载自1351017747.iteye.com/blog/1696822
今日推荐