当前位置:K88软件开发文章中心编程语言APP编程Android01 → 文章内容

4.2.1 Service初涉

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 6:26:12

og.i(TAG, "onRebind方法被调用!"); super.onRebind(intent); } } 在AndroidManifest.xml中对Service组件进行注册:<service android:name=".TestService2" android:exported="false"> <intent-filter> <action android:name="com.jay.example.service.TEST_SERVICE2"/> </intent-filter> </service> MainActivity.java:public class MainActivity extends Activity { private Button btnbind; private Button btncancel; private Button btnstatus; //保持所启动的Service的IBinder对象,同时定义一个ServiceConnection对象 TestService2.MyBinder binder; private ServiceConnection conn = new ServiceConnection() { //Activity与Service断开连接时回调该方法 @Override public void onServiceDisconnected(ComponentName name) { System.out.println("------Service DisConnected-------"); } //Activity与Service连接成功时回调该方法 @Override public void onServiceConnected(ComponentName name, IBinder service) { System.out.println("------Service Connected-------"); binder = (TestService2.MyBinder) service; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnbind = (Button) findViewById(R.id.btnbind); btncancel = (Button) findViewById(R.id.btncancel); btnstatus = (Button) findViewById(R.id.btnstatus); final Intent intent = new Intent(); intent.setAction("com.jay.example.service.TEST_SERVICE2"); btnbind.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //绑定service bindService(intent, conn, Service.BIND_AUTO_CREATE); } }); btncancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //解除service绑定 unbindService(conn); } }); btnstatus.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "Service的count的值为:" + binder.getCount(), Toast.LENGTH_SHORT).show(); } }); } } 运行截图:点击锁定Service:继续点击锁定:没任何变化获取当前Service的状态:解除绑定:如果我们再绑定后直接关掉Activity的话会报错,然后会自动调用onUnbind和onDestory方法!。。。从上面的运行结果验证了生命周期图中的:使用BindService绑定Service,依次调用onCreate(),onBind()方法,我们可以在onBind()方法中返回自定义的IBinder对象;再接着调用的是ServiceConnection的onServiceConnected()方法该方法中可以获得IBinder对象,从而进行相关操作;当Service解除绑定后会自动调用onUnbind和onDestroyed方法,当然绑定多客户端情况需要解除所有的绑定才会调用onDestoryed方法进行销毁哦!

上一页  [1] [2] [3] 


4.2.1 Service初涉