service和activity之间的数据交互 (从activity传数据给service,又从service传数据给activity),这样的使用在安卓开发中是比较有深度的使用方式。下面我们就来介绍一下它的使用。
整体思路:在xml文件中放置一个TextView控件,三个Button控件,定义一个MyService类,继承Service,在onBind方法中返回LocalBinder对象,定义getRandom方法,返回一个随机数,定义一个LocalBinder类,继承Binder,在这个类中定义getService方法返回service对象,重写onTransact方法接收从activity中传递的数据并向activity中传递数据。在activity中,定义三个Button的点击事件,在第一个点击事件中绑定Service,在第二个点击事件中调用service的产生随机数的方法,并将获取的结果绑定到TextView控件上,在第三个点击事件中向service传递数据并获取从service中传递的数据。这样就完成了service和activity之间的数据交互。
activity_main.xml文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop=