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);
- }
- }
- }
待续....