Android中service基本用法,生命周期2
来源:互联网 发布:矩阵秩变成1 编辑:程序博客网 时间:2024/05/08 18:59
在上一篇博客中讲了一下生命周期,这里直接写例子。
service的Binder启动方式
项目结构:
创建service
public class MyService extends Service {
//创建一个内部类的实例
private DownloadBinder mBinder=new DownloadBinder();
/**
* 创建一个内部类
*/
class DownloadBinder extends Binder{
public void startDownload() {
Log.i("1","startDownload方法被调用了" );
}
public int getProgress(){
Log.i("1", "getProgress方法被调用了");
return 0;
}
}
@Override
public void onCreate() {
super.onCreate();
Log.i("1", "onCreate方法被调用了");
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i("1", "onDestroy方法被调用了");
}
@Override
public IBinder onBind(Intent intent) {
//返回内部类的对象
return mBinder;
}
}
主清单注册
<service
android:name="com.zhh.android.MyService"
></service>
activity中绑定和解绑
public class MainActivity extends Activity implements OnClickListener {
private Button bind_service;//绑定按钮
private Button unbind_service;//解除绑定按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bind_service = (Button) findViewById(R.id.bind_service);
unbind_service = (Button) findViewById(R.id.unbind_service);
bind_service.setOnClickListener(this);
unbind_service.setOnClickListener(this);
}
/**
* 创建ServiceConnection的匿名类
*/
private ServiceConnection connection = new ServiceConnection() {
/**
* 解除绑定时调用
*/
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
}
/**
* 和服务绑定成功时调用
*/
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//得到DownloadBinder的实例,就可以调用类中的方法了
MyService.DownloadBinder downloadBinder = (DownloadBinder) service;
downloadBinder.startDownload();
downloadBinder.getProgress();
}
};
/**
* 按钮的监听器
*/
@Override
public void onClick(View v) {
switch (v.getId()) {
/**
* 绑定服务
*/
case R.id.bind_service:
Intent bindIntent = new Intent();
bindIntent.setClass(MainActivity.this, MyService.class);
/*bindService第三个参数是一个标志位BIND_AUTO_CREATE,表示活动和服务绑定后自动创建服务
*会调用服务的onCreate();方法
*/
bindService(bindIntent, connection, BIND_AUTO_CREATE);//绑定服务
//绑定会调用服务中的onCreate();startDownload();getProgress();
break;
/**
* 解除绑定
*/
case R.id.unbind_service:
unbindService(connection);//解除绑定
//解绑会调用服务中的onDestroy();
break;
}
}
}//class
如果没有明白下载我的例子
http://download.csdn.net/detail/zhaihaohao1/8290861
- Android中service基本用法,生命周期2
- Android中service基本用法,生命周期1
- Android 中Service生命周期
- Android中Service生命周期
- android中service生命周期
- Android Service生命周期及用法!
- Android Service生命周期及用法!
- Android Service生命周期及用法
- Android Service生命周期及用法
- Android Service生命周期及用法
- Android Service生命周期及用法
- Android Service生命周期及用法!
- Android Service生命周期及用法!
- Android Service生命周期及用法
- Android Service生命周期及用法!
- Android Service生命周期及用法
- Android Service生命周期及用法!
- Android Service生命周期及用法
- Android中内容观察者的使用---- ContentObserver类详解
- mahout入门之编写第一个基于用户的推荐程序
- awk用法
- ibcbet เล่นได้จากมือถือ
- oc - 10 NSString
- Android中service基本用法,生命周期2
- 为Android添加开机启动脚本
- Md5加密算法的原理及应用
- [密码学]格密码学(1)-同余公钥密码体制
- Oracle日期类型转换格式
- 性能测试框架Multi-Mechanize安装与使用
- 磁盘空间满造成第二个ssh登录linux失败
- 《Android应用开发精解》内容简介
- 死锁的简单理解