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");
}
}
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");
}
}