-
@Bind启动——(下) public class MyBindService extends Service { @Override public void onCreate() { Log.i("TAG", "BindService_onCreate"); super.onCreate(); } @Override public void unbindService(ServiceConnection conn) { Log.i("TAG", "BindService_unbindService"); super.unbindService(conn); } public class MyBinder extends Binder{ public MyBindService getService(){ return MyBindService.this;//返回当前服务对象 } } @Override public IBinder onBind(Intent intent) { Log.i("TAG", "BindService_onBind"); return new MyBinder();//返回一个数据类 } @Override public void onDestroy() { Log.i("TAG", "BindService_onDestroy"); super.onDestroy(); } public void play(){ Log.i("TAG", "播放"); } //其他三个类似 } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
@Bind启动——(中) public class MainActivity extends Activity { Intent intent1; Intent intent2; MyBindService bindservice; ServiceConnection conn=new ServiceConnection() { @Override//当启动源跟Service的连接意外丢失的时候会调用这个方法,但是当Service取消绑定是不会调用这个方法的。如:当Service崩溃了或被强行杀死了。 public void onServiceDisconnected(ComponentName name) { } @Override//当启动源跟Service成功连接之后将会自动调用这个方法 public void onServiceConnected(ComponentName name, IBinder binder) { bindservice=((MyBinder)binder).getService(); } }; @Override protected void onCreate(...) { ... } @Override protected void onDestroy() {//如果结合使用startService(Intent intent),一定要调用这个重写这个方法。 super.onDestroy(); stopService(intent2); unbindService(conn); } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
@Bind启动——(上) public void doClick(View v){ switch (v.getId()) { case R.id.start: intent1=new Intent(MainActivity.this, MyStartService.class); startService(intent1); break; case R.id.stop: stopService(intent1); break; case R.id.bind: intent2=new Intent(MainActivity.this,MyBindService.class); startService(intent2);//有必要时推荐:结合使用 bindService(intent2, conn, BIND_AUTO_CREATE);//第三个参数:自动创建 break; case R.id.play: bindservice.play(); break; ...//其他三个类似 case R.id.unbind: unbindService(conn); break; } } Ps1:StartService开启后onCreate只会调用一次,再点击StartService不会再调用,直接调用onStartCommand;而BindService开启后onCreate和onBind都只调用一次,再点击也不会调用。 Ps2:StopService点击多次,只调用一次,但是不会报错;而UnBindService点击多次,虽只调用一次,但是会报错。 @启动源(个人理解:Activity): Start方式:可以不需要界面(UI),但是服务还存在,但是数据不能返回。 Bind方式:与界面共存亡。 -有必要推荐Start与Bind一起结合使用。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
@Service启动与停止 public void doClick(View v){ switch (v.getId()) { case R.id.start: intent1=new Intent(MainActivity.this, MyStartService.class); startService(intent1); break; case R.id.stop: stopService(intent1); break; } } //另类 public class MyStartService extends Service { @Override public void onCreate() { Log.i("TAG", "Service_onCreate"); super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i("TAG", "Service_onStartCommand"); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { Log.i("TAG", "Service_onDestroy"); super.onDestroy(); } @Override public IBinder onBind(Intent intent) { return null; } } Ps:开启后onCreate只会调用一次,再点击StartService不会再调用,直接调用onStartCommand。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
@Start方式、Bind方式特点 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
@服务生命周期 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
@服务类型 同一个Apk下面的Service和Activity没有特殊的情况下,一般是在同一个进程的同一个线程里面的。都在主UI线程,这就是为什么我们在Service的OnStart、OnBind中不能做延时较长的操作。而且Service里创建的线程是在Service自己运行环境中线程的外面,但又在同一个进程里。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
Ps:如果带Service的APP,APP销毁了但是Service可能还存在,而且Service很难销毁,即使销毁了也可能会自动启动,除非人为关闭。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
如何实现ContentProvider查看全部
-
contentProvider的理解查看全部
-
openFileInput()方法只接收一个对象即文件名<br> openFileOutput()方法接收两个对象(“文件名”,MODE),当允许其他程序访问该文件时MODE可以为MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE查看全部
-
Broadcast查看全部
-
普通广播与有序广播查看全部
-
Service生命周期图查看全部
-
服务分两种:本地服务和远程服务。 本地服务是程序内的服务有两套启动机制(startService、stopService、stopSelf、stopSelfResult)和(bindService、unbindService) 远程服务是同一个Android系统中的应用程序间的服务。有IBinder接口查看全部
举报
0/150
提交
取消