Android IPC之 Messager
来源:互联网 发布:防止mysql 注入攻击 编辑:程序博客网 时间:2024/05/22 01:27
public class MessengerService extends Service{ public static final int MESSAGE_FROM_REMOTE=1; public static final int MESSAGE_REPLY_TO_REMOTE=2; private static final String TAG="MessengerService"; private Handler mHandler; private Messenger mMessenger; public MessengerService() { } @Override public void onCreate() { super.onCreate(); mHandler=new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MESSAGE_FROM_REMOTE: String s = msg.getData().getString("msg"); Log.i(TAG, s); Messenger client = msg.replyTo; Message reply = Message.obtain(null, MESSAGE_REPLY_TO_REMOTE); msg.getData().putString("reply", "reply: " + s); reply.setData(msg.getData()); try { client.send(reply); } catch (RemoteException e) { e.printStackTrace(); } break; } } }; mMessenger=new Messenger(mHandler); } @Override public IBinder onBind(Intent intent) { return mMessenger.getBinder(); }}
public class MessengerActivity extends AppCompatActivity{ private static final String TAG="MessengerActivity"; EditText mEditText; Button mButton; TextView mTextView; //本地接收方handler private Handler mReceiveHandler=new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MessengerService.MESSAGE_REPLY_TO_REMOTE: String s = msg.getData().getString("reply"); mTextView.setText(s); break; } } }; private Messenger mService; private Messenger mMySelf=new Messenger(mReceiveHandler); private ServiceConnection mConnection=new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { mService=new Messenger(iBinder); } @Override public void onServiceDisconnected(ComponentName componentName) { mService = null; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_messenger); mEditText=(EditText)findViewById(R.id.editText); mButton=(Button)findViewById(R.id.send); mTextView=(TextView)findViewById(R.id.receive); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Message message=Message.obtain(null,MessengerService.MESSAGE_FROM_REMOTE); Bundle bundle=new Bundle(); bundle.putString("msg",mEditText.getText().toString()); message.setData(bundle); message.replyTo=mMySelf; try { mService.send(message); }catch (RemoteException e) { e.printStackTrace(); } } }); Intent i=new Intent(this,MessengerService.class); bindService(i,mConnection, Service.BIND_AUTO_CREATE); } @Override protected void onDestroy() { super.onDestroy(); unbindService(mConnection); }}
0 0
- Android IPC之 Messager
- Android IPC进程通信之Messager方式
- Android IPC之Messager用法示例
- Android两种IPC通信方式之Messager
- Android IPC 系列(3):Messager
- Android IPC进程通信 Messager方式
- Android IPC进程通信——Messager方式
- Android IPC进程通信——Messager方式
- Android IPC进程通信——Messager方式
- Android IPC进程通信——Messager方式
- Android IPC进程通信——Messager方式
- Android IPC进程通信——Messager方式
- Android IPC之AIDL
- Android IPC之Messenger
- Android IPC 之Messenger
- Android IPC 之AIDL
- Android IPC之AIDL
- Android之IPC机制
- java语言中IO流知识
- HDU_1232_畅通工程
- PHP魔术方法之__call与__callStatic方法
- 在Windows上玩TensorFlow(一)——安装Docker
- 435. Non-overlapping Intervals
- Android IPC之 Messager
- HDU 2859 Phalanx 递推
- JAVA自定义注解使用
- Codeforces725D-Contest Balloons(优先队列+模拟)
- [APUE chapter 12] 线程控制
- Spring之new和getBean()
- Java API——StringBuilder类
- 今天开通了!
- Nginx+Php-fpm运行原理详解