Messenger
2015-11-11 17:11
78 查看
package com.example.messenger; import android.app.Service; import android.content.Intent; import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.os.Messenger; import android.util.Log; public class MyAppService extends Service{ private Messenger messenger = null; private int a,b,result; @Override public void onCreate() { Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { Log.d("后台服务收到消息", msg.arg1+","+msg.arg2); a=msg.arg1; b=msg.arg2; } }; messenger = new Messenger(handler); } @Override public int onStartCommand(Intent intent, int flags, int startId) { result = a+b; Log.d("计算结果", result+""); return super.onStartCommand(intent, flags, startId); } @Override public IBinder onBind(Intent intent) { return messenger.getBinder(); } }
package com.example.messenger; import android.app.Activity; import android.app.Service; import android.content.ComponentName; import android.content.Intent; import android.content.ServiceConnection; import android.os.Bundle; import android.os.IBinder; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity implements View.OnClickListener{ private ServiceConnection sc = null; private Messenger sender; private int seq=0; private int a=2,b=3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bind = (Button) findViewById(R.id.bind); bind.setOnClickListener((OnClickListener) this); Button send = (Button) findViewById(R.id.send); send.setOnClickListener((OnClickListener) this); Button jisuan=(Button) findViewById(R.id.jisuan); jisuan.setOnClickListener((OnClickListener) this); } private void bindMyService(){ sc= new ServiceConnection(){ @Override public void onServiceConnected(ComponentName name, IBinder binder) { sender = new Messenger(binder); } @Override public void onServiceDisconnected(ComponentName name) { } }; Intent intent = new Intent(this,MainActivity.class); bindService(intent, sc, Service.BIND_AUTO_CREATE); } private void startMyJiSuanService(){ Intent intent=new Intent(this,MyAppService.class); startService(intent); } private void sendMessage(){ Message msg = new Message(); msg.arg1=a; msg.arg2=b; try { sender.send(msg); } catch (RemoteException e) { e.printStackTrace(); } } @Override protected void onDestroy() { super.onDestroy(); this.unbindService(sc); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bind: bindMyService(); break; case R.id.send: sendMessage(); break; case R.id.jisuan: startMyJiSuanService(); } } }
相关文章推荐
- 关于ajax中async参数的感悟
- 评论
- UITextField
- JSP内置对象---总结
- scrollView之添加随机颜色或者图片
- 关于在windows,利用java语言,phantomJS,highcharts实现服务器端自动生成图表
- ehchche配置中配置多个缓存对象
- 第七章 注解式控制器的数据验证、类型转换及格式化(1)——跟着开涛学SpringMVC
- Unity Mesh初探
- Ubuntu与windows共享键盘鼠标 - Synergy
- Halcon 学习笔记 (一)
- BOM -物料清单
- Unicode和多字节设置
- 数据量大的数据转换成jason并显示在页面上
- 评论
- 正则表达式
- (原创)c#学习笔记10--定义类成员01--成员定义01--定义字段
- BA-Delta知识点
- 012 - Integer to Roman
- android数据库相关几个小问题