Android建立能与Activity进行相互通信的本地服务

来源:互联网 发布:tensorflow 训练时间 编辑:程序博客网 时间:2024/05/17 09:11

MyService.java

package cn.itcast.service;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;public class MyService extends Service {private Binder binder = new MyBinder();public String getName(int id){return "传智播客";}@Overridepublic IBinder onBind(Intent intent) {return binder;}private final class MyBinder extends Binder implements IService{public String getName(int id){return MyService.this.getName(23);}}}


MainActivity.java

package cn.itcast.service;import android.app.Activity;import android.content.ComponentName;import android.content.Intent;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {    private MyServiceConnection conn;    private IService myservice;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                conn = new MyServiceConnection();        Intent intent = new Intent(this, MyService.class);        bindService(intent, conn, BIND_AUTO_CREATE);        Button button = (Button) this.findViewById(R.id.button);        button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {TextView resultView = (TextView) findViewById(R.id.result);resultView.setText(myservice.getName(56));}});    }        private final class MyServiceConnection implements ServiceConnection{@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {myservice = (IService)service;}@Overridepublic void onServiceDisconnected(ComponentName name) {myservice = null;}    }@Overrideprotected void onDestroy() {unbindService(conn);super.onDestroy();}    }


IService.java

package cn.itcast.service;public interface IService {public String getName(int id);}


 

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="cn.itcast.service"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".MainActivity"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity><service android:name=".MyService"/>    </application>    <uses-sdk android:minSdkVersion="8" /></manifest> 


 

原创粉丝点击