BaseActivity.java 1.79 KB
package com.sunvote.xpadapp.base;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.WindowManager;

public abstract class BaseActivity extends FragmentActivity {
	
	private String TAG = "BaseActivity";
	public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; //需要自己定义标志
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码
		
		//禁止休眠
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
		  
		super.onCreate(savedInstanceState);
	}
	
	@Override  
	public boolean onKeyDown(int keyCode, KeyEvent event) {  
	    Log.i(TAG,"onKeyDown keycode="+keyCode );  
	    switch (keyCode) {  
	        case KeyEvent.KEYCODE_BACK:  
	        Log.i(TAG,"KEYCODE_BACK");  
	        return true;  
	        case KeyEvent.KEYCODE_HOME:
                return true;
         
	    }  
	    return super.onKeyDown(keyCode, event);  
	}

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

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



	@Override
    public boolean dispatchKeyEvent(KeyEvent event) {
           //返回true,不响应其他key
	 int keyCode=	event.getKeyCode();
		 Log.i(TAG,"dispatchKeyEvent keycode="+keyCode );  
		    switch (keyCode) {  
		        case KeyEvent.KEYCODE_BACK:  
		        Log.i(TAG,"KEYCODE_BACK");
		        return true;  
		        case KeyEvent.KEYCODE_HOME:
		        	if(event.isLongPress()){
		        		moveTaskToBack(false); 
		        	}
	                return true;
	         
		    }  
           return true;
    }

}