android关于service()

MainActivity:
package com.example.myservice1;

import com.example.myservice1.Myservice.MyBinder;

import android.os.Bundle;

import android.os.IBinder;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.content.ComponentName;

import android.content.Intent;

import android.content.ServiceConnection;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

@SuppressLint("ShowToast")

public class MainActivity extends Activity implements OnClickListener,ServiceConnection{

    private Button start,stop,bind,unbind,get;

     private Intent intent;

    

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        start=(Button) findViewById(R.id.start);

        stop=(Button) findViewById(R.id.stop);

        bind=(Button) findViewById(R.id.bind);

        unbind=(Button) findViewById(R.id.unbind);

        get=(Button) findViewById(R.id.get);

        start.setOnClickListener(this);

        stop.setOnClickListener(this);

        bind.setOnClickListener(this);

        unbind.setOnClickListener(this);

        get.setOnClickListener(this);

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

    }



    @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;

    }    

    @Override

    public void onClick(View v) {

        switch (v.getId()) {

        case R.id.start:

            startService(intent);            

            break;

        case R.id.stop:

            stopService(intent);

            break;

        case R.id.bind:

            bindService(intent, this, BIND_AUTO_CREATE);

            break;

        case R.id.unbind:

            unbindService(this);

            break;

        case R.id.get:

            Toast.makeText(MainActivity.this,

                    "当前Service的值为:" + my.getIndex(), Toast.LENGTH_LONG).show();

            break;            

        default:

            break;

        }

        

        

    }

    private Myservice my;

    @Override

    public void onServiceConnected(ComponentName name, IBinder service) {        

        System.out.println("onServiceConnected");

        Myservice.MyBinder m=(MyBinder) service;

        my=m.getMyService();        

    }



    @Override

    public void onServiceDisconnected(ComponentName name) {                

    }



}

 




Myservice:
package com.example.myservice1;

import java.util.Timer;

import java.util.TimerTask;



import android.app.Service;

import android.content.Intent;

import android.os.Binder;

import android.os.IBinder;



public class Myservice extends Service {



    private Timer timer;

    private TimerTask task;

    private int index = 0;



    // 与Activicy进行绑定

    @Override

    public IBinder onBind(Intent intent) {

        return binder;

    }

    //得到binder对象

    private MyBinder binder = new MyBinder();



    //自定义已给MyBinder继承Binder实现通信

    public class MyBinder extends Binder{

        //获得当前Service的状态

        public Myservice getMyService(){

            

            return Myservice.this;

        }

    }

    

    

    @Override

    public void onCreate() {

        super.onCreate();

        startTimer();

    }



    @Override

    public int onStartCommand(Intent intent, int flags, int startId) {

        return super.onStartCommand(intent, flags, startId);



    }



    @Override

    public void onDestroy() {

        super.onDestroy();

        stopTimer();

    }



    // 开始执行Timer

    public void startTimer() {

        timer = new Timer();

        task = new TimerTask() {



            @Override

            public void run() {

                index++;

                System.out.println(index);

            }

        };

        timer.schedule(task, 1000, 1000);

    }



    // 停止Timer的执行

    public void stopTimer() {

        timer.cancel();

    }

    //实现可读性(Index)

    public int getIndex() {

        return index;

    }

}

    

 

 

 

 

你可能感兴趣的:(android)