使用Messenger类绑定服务显示时间
来源:互联网 发布:python args 编辑:程序博客网 时间:2024/05/02 19:20
1、布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/current_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="当前时间" android:textColor="@android:color/black" android:textSize="25dp" /></LinearLayout>
2、创建CurrentTimeService类,继承Service类,内部类IncomingHandler类继承Handler类
public class CurrentTimeService extends Service {public static final int CURRENT_TIME = 0;private class IncomingHandler extends Handler{@Overridepublic void handleMessage(Message msg) {if(msg.what==CURRENT_TIME){Time time = new Time();//创建Time对象time.setToNow();//设置时间为当前时间String currentTime = time.format("%Y-%m-%d %H:%M:%S");//设置时间格式Toast.makeText(CurrentTimeService.this, currentTime, Toast.LENGTH_SHORT).show();}else{super.handleMessage(msg);}}}@Overridepublic IBinder onBind(Intent intent) {Messenger messenger = new Messenger(new IncomingHandler());return messenger.getBinder();}}
3、MainActivity
public class MainActivity extends Activity {Messenger messenger;boolean bound; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void onStart() { super.onStart(); Button button = (Button)findViewById(R.id.current_time); button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivity.this,CurrentTimeService.class);bindService(intent,connection,BIND_AUTO_CREATE);//绑定服务if(bound){Message message = Message.obtain(null, CurrentTimeService.CURRENT_TIME, 0, 0); try { messenger.send(message); } catch (RemoteException e) { e.printStackTrace(); }}}}); } @Override protected void onStop() { super.onStop(); if(bound){ bound = false; unbindService(connection);//解绑定 } } private ServiceConnection connection = new ServiceConnection(){ public void onServiceConnected(android.content.ComponentName name, android.os.IBinder service) { messenger = new Messenger(service);
<span style="white-space:pre"></span>bound = true; }; public void onServiceDisconnected(android.content.ComponentName name) { messenger = null; bound = false; } };}
<service android:name=".CurrentTimeService"/>
0 0
- 使用Messenger类绑定服务显示时间
- 继承Binder类绑定服务显示时间
- 5.2 绑定服务的三种方式:扩展 Binder 类、使用 Messenger、使用 AIDL
- Android 绑定类型服务---使用信使(Messenger)
- Android 绑定类型服务---使用信使(Messenger)
- 远程绑定Service使用Messenger通讯
- Android 绑定Service的实现方法二:使用Messenger
- 使用Messenger
- 使用Messenger
- Messenger的基本用法(本质是跨APP的绑定服务)
- Android Service详解(七)---绑定服务BoundService详解之Messenger双向通信的实现
- 关于messenger服务
- 信使服务 (Messenger)
- Bound服务之Messenger
- android Bound Service使用:使用Message类绑定服务
- android AIDL绑定服务使用
- android绑定服务方法使用
- repeater 绑定显示时间的不同格式
- 递归练习三
- 使用Hibernate criteria进行分页查询时,如何实现一次查询取得总记录数和分页后结果集
- git命令
- 遗传算法
- 2.19 找出主要元素
- 使用Messenger类绑定服务显示时间
- 二叉树的非递归遍历
- UNIX System Overview
- 云南,这个城市叫蒙自
- 简单东西-java动态更改JLabel背景图片
- react native组件学习(四)
- android中使用xml里的array资源
- 从比特币到区块链的未来
- 设置Hadoop+Hbase集群pid文件存储位置