1. 程式人生 > >Android四大元件啟動順序、生命週期詳解

Android四大元件啟動順序、生命週期詳解

package com.dada.test;

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.util.Log;
import android.view.View;
import android.widget.Button;

import com.dada.test.BindService.MyBinder;

public class TestActivity extends Activity {
	
	private boolean flag;
	private static final String TAG = "TestActivity";
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
 
        Button btnStart = (Button) findViewById(R.id.btnStart); 
 
        Button btnStop = (Button) findViewById(R.id.btnStop); 
 
        
        btnStart.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
            	//啟動service 方式2
            	bindService();
            } 
        }); 
        
        btnStop.setOnClickListener(new View.OnClickListener() { 
        	 
            @Override 
            public void onClick(View v) { 
 //停止service 方式2
            	unBindService();
            } 
        }); 
    }
    
    //啟動service 方式2
    //
    private void bindService(){
        Intent intent = new Intent(TestActivity.this,BindService.class);
        Log.i(TAG, "bindService()");
        bindService(intent, conn, Context.BIND_AUTO_CREATE);
    }
    
    private void unBindService(){
    	Log.i(TAG, "unBindService() start....");
        if(flag == true){
        	Log.i(TAG, "unBindService() flag");
            unbindService(conn);
            flag = false;
        }
    }
    
private ServiceConnection conn = new ServiceConnection() {
        
        @Override
        public void onServiceDisconnected(ComponentName name) {
            // TODO Auto-generated method stub
        	Log.i(TAG, "onServiceDisconnected()");
        }
        
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            // TODO Auto-generated method stub
        	Log.i(TAG, "onServiceConnected()");
            MyBinder binder = (MyBinder)service;
            BindService bindService = binder.getService1();
            bindService.MyMethod();
            flag = true;
        }
    };
}