1.自定义一个接口,暴露服务中的方法
public interface IService {
/**服务中对外暴露的方法 */ void methodInService();}
2.自定一个服务类,继承service类
3.在服务类中新建内部类,继承Binder,实现自定义的接口,并在onBind()方法中返回内部类的实例
public class MyService extends Service {
@Override public IBinder onBind(Intent intent) { return new MyBinder(); } public class MyBinder extends Binder implements IService{ @Override public void methodInService() { serviceMethod1(); } } public void serviceMethod1(){ System.out.println("serviceMethod1"); } }4.在清单文件中注册服务
<service android:name="com.example.nativeservicemethod.MyService"></service></application>
5.在activity中新建内部类,实现ServiceConnection,然后在onServiceConnected() 方法中强制转化接口实例。
private class MyServiceConnection implements ServiceConnection {
@Override public void onServiceDisconnected(ComponentName name) { } @Override public void onServiceConnected(ComponentName name, IBinder service) { iService = (IService) service; } };6.用bind绑定服务,用接口实例调用服务中暴露的方法。
if (conn == null) {
conn = new MyServiceConnection(); bindService(new Intent(MainActivity.this, MyService.class), conn, Context.BIND_AUTO_CREATE); }