您的位置:首页 > 移动开发 > Android开发

BinderService简单应用

2016-07-11 17:20 369 查看

BinderActivity.java

package com.czk.testview;

import com.czk.testview.BinderService.MyBinder;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class BinderActivity extends Activity {
private Button btnStartBinderService;
private Button btnStopBinderService;
private Boolean isConnected = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_binder);
btnStartBinderService = (Button) findViewById(R.id.btnStartBinderService);
btnStopBinderService = (Button) findViewById(R.id.btnStopBinderService);
btnStartBinderService.setOnClickListener(listener);
btnStopBinderService.setOnClickListener(listener);
}

private OnClickListener listener = new OnClickListener() {

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnStartBinderService:
bindService();
break;
case R.id.btnStopBinderService:
unbind();
break;
default:
break;
}

}
};

protected void bindService() {
Intent intent = new Intent(BinderActivity.this, BinderService.class);
Toast.makeText(BinderActivity.this, "bindService...	",
Toast.LENGTH_SHORT).show();
bindService(intent, conn, Context.BIND_AUTO_CREATE);
}

protected void unbind() {
if (isConnected) {
unbindService(conn);
Toast.makeText(BinderActivity.this, "unbind...	",
Toast.LENGTH_SHORT).show();

}
}

private ServiceConnection conn = new ServiceConnection() {

public void onServiceDisconnected(ComponentName name) {
isConnected = false;
}

public void onServiceConnected(ComponentName name, IBinder binder) {
MyBinder mybinder = (MyBinder) binder;
BinderService service = mybinder.getService();
service.MyMethod();
isConnected = true;
}
};
}

BinderService.java

package com.czk.testview;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class BinderService extends Service {
private static final String TAG = "BinderService";
private String STR = "";
private MyBinder binder = new MyBinder();

public class MyBinder extends Binder {
public BinderService getService() {
return BinderService.this;
}
}

public IBinder onBind(Intent intent) {
return binder;
}

public void MyMethod() {
STR="MyMethod()";
Toast.makeText(BinderService.this, STR, Toast.LENGTH_SHORT).show();
Log.i(TAG, STR);
}
}

activity_binder.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<Button
android:id="@+id/btnStartBinderService"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="btnStartService" />

<Button
android:id="@+id/btnStopBinderService"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="btnStopService" />

</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  BinderService android