bindservice使用例子-创新互联

MainActivity.java如下

安达网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联从2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

package com.example.bindservice;

import com.example.bindservice.BindService.MyBinder;

import android.os.Bundle;

import android.os.IBinder;

import android.app.Activity;

import android.content.ComponentName;

import android.content.Context;

import android.content.Intent;

import android.content.ServiceConnection;

import android.util.Log;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends Activity {

private Button startBtn;

private Button stopBtn;

private boolean flag;

private static final String TAG = "BindService";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

flag = false;

startBtn = (Button)this.findViewById(R.id.startBtn);

stopBtn = (Button)this.findViewById(R.id.stopBtn);

startBtn.setOnClickListener(listener);

stopBtn.setOnClickListener(listener);

}

private OnClickListener listener = new OnClickListener() {

    @Override

    public void onClick(View v) {

      // TODO Auto-generated method stub

      switch (v.getId()) {

      case R.id.startBtn:

         bindService();

        break;

      case R.id.stopBtn:

        unBind();

        break;

      default:

        break;

      }

    }

  };

  private void bindService(){

    Intent intent = new Intent(MainActivity.this,BindService.class);

    bindService(intent, conn, Context.BIND_AUTO_CREATE);

  }

  private void unBind(){

    if(flag == true){

      Log.i(TAG, "BindService-->unBind()");

      unbindService(conn);

      flag = false;

    }

  }

  private ServiceConnection conn = new ServiceConnection() {

    @Override

    public void onServiceDisconnected(ComponentName name) {

      // TODO Auto-generated method stub

    }

    @Override

    public void onServiceConnected(ComponentName name, IBinder service) {

      // TODO Auto-generated method stub

      MyBinder binder = (MyBinder)service;

      BindService bindService = binder.getService();

      bindService.MyMethod();

      flag = true;

    }

  };

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

BindService.java如下

package com.example.bindservice;

import android.app.Service;

import android.content.Intent;

import android.os.Binder;

import android.os.IBinder;

import android.util.Log;

public class BindService extends Service {

private static final String TAG = "BindService";

public void MyMethod(){

for(int i = 0; i < 100; i++)

{

Log.i(TAG, "BindService-->MyMethod()");

}

  }

@Override

public IBinder onBind(Intent arg0) {

// TODO Auto-generated method stub

return myBinder;

}

public class MyBinder extends Binder{

    public BindService getService(){

      return BindService.this;

    }

  }

private MyBinder myBinder = new MyBinder();

}

strings.xml如下

  BindService

  Settings

  Hello world!

stopBtn

startBtn

main.xml如下

  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" >

  

    android:id="@+id/textView1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="@string/hello_world" />

  

    android:id="@+id/startBtn"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignLeft="@+id/textView1"

    android:layout_below="@+id/textView1"

    android:layout_marginTop="18dp"

    android:text="@string/startBtn" />

  

    android:id="@+id/stopBtn"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignRight="@+id/startBtn"

    android:layout_below="@+id/startBtn"

    android:layout_marginTop="29dp"

    android:text="@string/stopBtn" />

AndroidManifest.xml如下

  package="com.example.bindservice"

  android:versionCode="1"

  android:versionName="1.0" >

  

    android:minSdkVersion="8"

    android:targetSdkVersion="17" />

  

    android:allowBackup="true"

    android:icon="@drawable/ic_launcher"

    android:label="@string/app_name"

    android:theme="@style/AppTheme" >

    

      android:name="com.example.bindservice.MainActivity"

      android:label="@string/app_name" >

      

        

        

      

    

    

  

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:bindservice使用例子-创新互联
地址分享:http://myzitong.com/article/despii.html