StartedService与BoundService区别

①:启动StartedService的Activity消亡,service还存在;启动BoundService的Activity消亡,Service也消亡(点击startService开始打印i=0…,按back键(empty process),onUnBind被打印)
②:StartedService和BoundService只要已实例化,就都不会再调用onCreate,但StartedService每次都会再调用onStartCommand,而BoundService若已绑定,则不会再调用onBind
③:音乐播放器用StartedService
本质区别:BoundService存在CS概念,借助Binder通讯
——————/
play.setOnClickListener(new OnClickListener() {
	@Override
	public void onClick(View v) {
		intent.putExtra("lyl",1);	//start
		startService(intent);
	}
});
pause.setOnClickListener(new OnClickListener() {
	@Override
	public void onClick(View v) {
		intent.putExtra("lyl",2);	//pause
		startService(intent);
	}
});
/*将nr.mp3放在layout/raw/目录下,导致生成apk文件很大*/

public class MyService extends Service {
	private MediaPlayer mPlayer;
	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}
	@Override
	public void onCreate() {
		super.onCreate();
		mPlayer=MediaPlayer.create(this,R.raw.nr);
	}
	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		int command=intent.getExtras().getInt("lyl");
		switch (command) {
		case 1:
			mPlayer.start();
			break;
		case 2:
			mPlayer.pause();
			break;
		}
		return Service.START_NOT_STICKY;
	}
	@Override
	public void onDestroy() {
		super.onDestroy();
	}
}
Activity退出(back),歌曲还在播放,但其process级别低,可能被系统杀死,解决办法:Running a Service in the Foreground
Service无界面,运行中如何与用户交互?①Toast(本质TextView,用到系统Layout)②StatusBar
Toast
        makeText //分析入口点
                LayoutInflater inflate = … //将xml转化为view
                View v=inflate.inflate(com.android.internal.R.layout.transient_notification,null);//系统xml
                TextView tv = (TextView)v.findViewById(com.android.internal.R.id.message);
                tv.setText(text); //text用户传入
如何在Service和多线程间抉择?
逻辑功能上独立长期运行,用service,如下载电影;与当前页面业务紧密相关短时运行,用线程,如下载图片后显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值