`
jiangshenghui2012
  • 浏览: 2616 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android 四大组件之一service

 
阅读更多
package com.kawa;

import com.kawa.MyService.Mybind;

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;
/*
* 测试service 生命周期
* @author 蒋胜辉
*/
public class MainActivity extends Activity {
    private Button btn_start;
    private Button btn_end;
    private Button btn_bind;
    private Button btn_unbind;
    private MyService myService;
    private MyServiceConnection sConnection=new MyServiceConnection() ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initialView();
        BindClick();
    }
    /*初始化控件*/
    public void initialView(){
    btn_start=(Button) findViewById(R.id.button1);
    btn_end=(Button) findViewById(R.id.button2);
    btn_bind=(Button) findViewById(R.id.button3);
    btn_unbind=(Button) findViewById(R.id.button4);
    }
    /*事件绑定*/
    public void BindClick(){
    btn_start.setOnClickListener(new MyStartOnClickListener());
    btn_end.setOnClickListener(new MyEndOnClickListener());
    btn_bind.setOnClickListener(new MyBindOnClickListener());
    btn_unbind.setOnClickListener(new MyUnbindOnClickListener());
    }
    class MyStartOnClickListener implements OnClickListener{
@Override
public void onClick(View v) {
//创建Intent 对象
Intent intent=new Intent("kawa.service");
MainActivity.this.startService(intent);
}
   
    }
    class MyEndOnClickListener implements OnClickListener{
@Override
public void onClick(View v) {
//创建Intent 对象
Intent intent=new Intent("kawa.service");
MainActivity.this.stopService(intent);
}
   
    }
    class MyBindOnClickListener implements OnClickListener{
@Override
public void onClick(View v) {
//创建Intent 对象
Intent intent=new Intent("kawa.service");
MainActivity.this.bindService(intent, sConnection,Context.BIND_AUTO_CREATE);
}
   
    }
    class MyUnbindOnClickListener implements OnClickListener{
@Override
public void onClick(View v) {
Intent intent=new Intent("kawa.service");
MainActivity.this.unbindService(sConnection);

}
    }
    /*
     * service 连接类,通过它找到bindService 然后在找到 service
     */
    class MyServiceConnection implements ServiceConnection{
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
myService=((MyService.Mybind)service).getMyService();
myService.add();
}
@Override
public void onServiceDisconnected(ComponentName name) {

}
   
    }
   
}

//service 类
package com.kawa;

import java.io.FileDescriptor;
import java.io.PrintWriter;

import android.app.Service;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Binder;
import android.os.IBinder;

public class MyService extends Service{
private Mybind mybind=new Mybind();
@Override
public IBinder onBind(Intent intent) {
System.out.println("service onBind");
return mybind;
}
    class Mybind extends Binder implements IBinder{
    public MyService getMyService(){
    return MyService.this;
    }
    }
@Override
protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
super.dump(fd, writer, args);
System.out.println("service dump");
}

@Override
protected void finalize() throws Throwable {
super.finalize();
System.out.println("service finalize");
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
System.out.println("service onConfigurationChanged");
}

@Override
public void onCreate() {
super.onCreate();
System.out.println("service onCreate");
}

@Override
public void onDestroy() {
super.onDestroy();
System.out.println("service onDestory");
}

@Override
public void onLowMemory() {
super.onLowMemory();
}

@Override
public void onRebind(Intent intent) {
super.onRebind(intent);
System.out.println("service onRebind");
}

@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
System.out.println("service onStart");
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
System.out.println("service onStartCommand");
return super.onStartCommand(intent, flags, startId);

}

@Override
public boolean onUnbind(Intent intent) {
System.out.println("hello onUnbind");
return super.onUnbind(intent);
}
    public void add(){
    System.out.println("hello world");
    }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics