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>
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories