1 package com.lixu.messenger;
 2 
 3 import android.app.Activity;
 4 import android.app.Service;
 5 import android.content.ComponentName;
 6 import android.content.Intent;
 7 import android.content.ServiceConnection;
 8 import android.os.Bundle;
 9 import android.os.IBinder;
10 import android.os.Message;
11 import android.os.Messenger;
12 import android.os.RemoteException;
13 import android.util.Log;
14 import android.view.View;
15 import android.view.View.OnClickListener;
16 import android.widget.Button;
17 
18 public class MainActivity extends Activity implements OnClickListener {
19     private ServiceConnection sc;
20     private Messenger sender;
21 
22     @Override
23     protected void onCreate(Bundle savedInstanceState) {
24         super.onCreate(savedInstanceState);
25         setContentView(R.layout.activity_main);
26 
27         Button btn1 = (Button) findViewById(R.id.btn1);
28         Button btn2 = (Button) findViewById(R.id.btn2);
29 
30         btn1.setOnClickListener(this);
31         btn2.setOnClickListener(this);
32 
33     }
34 
35     public void bindService() {
36         sc = new ServiceConnection() {
37 
38             @Override
39             public void onServiceDisconnected(ComponentName name) {
40 
41             }
42 
43             @Override
44             public void onServiceConnected(ComponentName name, IBinder service) {
45                 sender = new Messenger(service);
46             }
47 
48         };
49         Intent intent = new Intent(this, MyMessenger.class);
50         bindService(intent, sc, Service.BIND_AUTO_CREATE);
51         Log.e("开始绑定", "绑定成功");
52 
53     }
54 
55     public void startService() {
56         Intent it = new Intent(this, MyMessenger.class);
57         startService(it);
58         Message msg = new Message();
59         int[] num = { 309, 713 };
60         msg.obj = num;
61         msg.what = Changliang.WHAT;
62         try {
63             sender.send(msg);
64         } catch (RemoteException e) {
65             e.printStackTrace();
66         }
67 
68     }
69 
70     @Override
71     public void onClick(View v) {
72         switch (v.getId()) {
73         case R.id.btn1:
74             bindService();
75             break;
76         case R.id.btn2:
77             startService();
78             break;
79 
80         default:
81             break;
82         }
83 
84     }
85 
86     @Override
87     protected void onDestroy() {
88         super.onDestroy();
89         unbindService(sc);
90         Intent it = new Intent(this, MyMessenger.class);
91         stopService(it);
92 
93     }
94 }
 1 package com.lixu.messenger;
 2 
 3 import android.app.Service;
 4 import android.content.Intent;
 5 import android.os.Handler;
 6 import android.os.IBinder;
 7 import android.os.Message;
 8 import android.os.Messenger;
 9 import android.util.Log;
10 
11 public class MyMessenger extends Service {
12     private int a;
13     private int b;
14     private Messenger mMessenger;
15     
16     @Override
17     public void onCreate() {
18         super.onCreate();
19         Handler handler = new Handler() {
20             @Override
21             public void handleMessage(Message msg) {
22                 super.handleMessage(msg);
23                 if (msg.what == Changliang.WHAT) {
24                     int[] nums = (int[]) msg.obj;
25                     a = nums[0];
26                     b = nums[1];
27                 }    
28             }
29         };
30         mMessenger=new Messenger(handler);
31     }
32 
33 
34     @Override
35     public int onStartCommand(Intent intent, int flags, int startId) {
36         int numshe = a + b;
37         Log.e("服务器收到结果:", numshe + "");
38         return super.onStartCommand(intent, flags, startId);
39     }
40 
41     @Override
42     public boolean onUnbind(Intent intent) {
43         return super.onUnbind(intent);
44     }
45 
46     @Override
47     public IBinder onBind(Intent arg0) {
48         return mMessenger.getBinder();
49     }
50 
51 }

 

posted on 2015-11-10 10:43  0代码狂人0  阅读(205)  评论(0编辑  收藏  举报