0
点赞
收藏
分享

微信扫一扫

极简实现android跨进程通信

双井暮色 2022-01-20 阅读 84

首先,在AndroidManifest中将service置于独立进程:

        <service
             android:name=".services.downloadService"
             android:enabled="true"
             android:exported="true"
             android:process=":service"/>  <!-- 此语句将service置于独立进程-->

1,在service内发送广播

 Intent mIntent = new Intent("dukerDev");    //添加广播过滤标识
        mIntent.putExtra("msg", "Download completed" );  //要传输的数据
        sendBroadcast(mIntent);  //发送广播

2,在activity内接收广播

private final IntentFilter intentFilter = new IntentFilter(); //new一个过滤器,注册广播需要
intentFilter.addAction("dukerDev");//添加要接收的广播过滤标识

private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        //new一个广播接收器,注册广播需要
        @Override
        public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if(action.equals("dukerDev")){//根据过滤标识区分广播
             Log.e(TAG,"broadcast rec " + intent.getStringExtra("msg"));  //取数据
       }
   }
};
           
registerReceiver(mBroadcastReceiver, intentFilter);//注册广播接收
           

@Override
protected void onDestroy() {
   try {
     unregisterReceiver(mBroadcastReceiver);  //activity销毁时,记得注销广播接收器,防止内存泄漏
   }catch (Exception ex){
     //异常处理
   }
   super.onDestroy();//此句放在自己逻辑的后面,因为这是系统在进行销毁等操作
}
举报

相关推荐

0 条评论