ScreenActivity被锁屏服务调用后显示指定的锁屏界面,相当于一个控制不同解锁界面的Controller。该类处理显示不同的解锁界面。同样这个类也处理一些细节的东西,隐藏状态栏等
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.WindowManager;
/**
* the controller of display interface
* @author liao
*
*/
public class ScreenActivity extends Activity {
private Timer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.saf_fullscreen);
//Configuration parameters for this activity
getWindow().setFormat(PixelFormat.TRANSLUCENT);
getWindow().setBackgroundDrawable(null);
hideStatusBar(true);
//Registered receive close close activiys
IntentFilter localIntentFilter = new IntentFilter();
localIntentFilter.addAction(SAFLockConstants.INTENT_UNLOCK);
registerReceiver(mReceiver, localIntentFilter);
}
@Override
protected void onResume() {
super.onResume();
//Set a timer, executing a timing task
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
//Start the specified activity
Intent mLockScreenIntent = new Intent(
SAFLockConstants.LOCK_INTENT);
mLockScreenIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mLockScreenIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(mLockScreenIntent);
}
}, 300);
}
@Override
protected void onDestroy() {
super.onDestroy();
//unregister this receiver
unregisterReceiver(mReceiver);
}
/**
* finish this activiy
*/
private void close() {
this.finish();
}
/**
* Receive the broadcast to finish activity
*/
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
close();
}
};
/**
* hide the statusBar of this activity
* @param flag
*/
public void hideStatusBar(boolean flag) {
if (!flag) {
this.getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
} else {
this.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
}
}
}
待续....