你的位置:首页 > 软件开发 > 操作系统 > Android 四大组件之再论service

Android 四大组件之再论service

发布时间:2016-10-16 11:00:15
service常见的有2种方式,本地service以及remote service。这2种的生命周期,同activity的通信方式等,都不相同。关于这2种service如何使用,这里不做介绍,只是介绍一些被遗漏的地方1.远程Service(AIDL方式)package com.j ...

service常见的有2种方式,本地service以及remote service。

这2种的生命周期,同activity的通信方式等,都不相同。

关于这2种service如何使用,这里不做介绍,只是介绍一些被遗漏的地方

1.远程Service(AIDL方式)

Android 四大组件之再论serviceAndroid 四大组件之再论service
package com.joyfulmath.samples.basecontrol;import android.app.Activity;import android.content.ComponentName;import android.content.Intent;import android.content.ServiceConnection;import android.os.IBinder;import android.os.RemoteException;import com.joyfulmath.samples.R;import com.joyfulmath.samples.TraceLog;import org.androidannotations.annotations.Click;import org.androidannotations.annotations.EActivity;/** * Created by Administrator on 2016/10/11 0011. * service connect activity samples */@EActivity(R.layout.activity_connect_service)public class ServiceConActivity extends Activity {  private ISamplesAidlInterface binder;  private ServiceConnection connection = new ServiceConnection() {    @Override    public void onServiceConnected(ComponentName name, IBinder service) {      TraceLog.i();      binder = ISamplesAidlInterface.Stub.asInterface(service);      if(binder!=null)      {        try {          binder.registerCallBack(mCallBack);        } catch (RemoteException e) {          e.printStackTrace();        }      }    }    @Override    public void onServiceDisconnected(ComponentName name) {      TraceLog.i();      binder = null;    }  };  private ICallBack.Stub mCallBack = new ICallBack.Stub() {    @Override    public void onServiceStateChanged(int s) throws RemoteException {      TraceLog.i(String.valueOf(s));    }  };  public void bindSamplesService()  {    TraceLog.i();    Intent intent = new Intent(this,ServiceSamples.class);//    intent.setAction("com.joyfulmath.service.samples");    bindService(intent,connection,BIND_AUTO_CREATE);  }  public void unBindSamplesService()  {    TraceLog.i();    if(binder!=null)    {      try {        binder.unRegisterCallBack(mCallBack);      } catch (RemoteException e) {        e.printStackTrace();      }    }    unbindService(connection);  }  @Click(R.id.btn_connect)  void connectClick()  {    TraceLog.i();    bindSamplesService();  }  @Click(R.id.btn_unconnect)  void unConnectClick()  {    TraceLog.i();    unBindSamplesService();  }  @Click(R.id.btn_do)  void doAction()  {    if(binder!=null)    {      try {        int r = binder.doBackground("action");        TraceLog.i(String.valueOf(r));      } catch (RemoteException e) {        e.printStackTrace();      }    }  }  @Override  protected void onDestroy() {    super.onDestroy();    TraceLog.i();    unBindSamplesService();  }}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Android 四大组件之再论service

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录