Android锁屏(四)

来源:互联网 发布:自制三菱plc编程电缆 编辑:程序博客网 时间:2024/05/19 12:28

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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.saf_fullscreen);//Configuration parameters for this activitygetWindow().setFormat(PixelFormat.TRANSLUCENT);getWindow().setBackgroundDrawable(null);hideStatusBar(true);//Registered  receive close close activiysIntentFilter localIntentFilter = new IntentFilter();localIntentFilter.addAction(SAFLockConstants.INTENT_UNLOCK);registerReceiver(mReceiver, localIntentFilter);}@Overrideprotected void onResume() {super.onResume();//Set a timer, executing a timing tasktimer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {//Start the specified activityIntent mLockScreenIntent = new Intent(SAFLockConstants.LOCK_INTENT);mLockScreenIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);mLockScreenIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);startActivity(mLockScreenIntent);}}, 300);}@Overrideprotected void onDestroy() {super.onDestroy();//unregister this receiverunregisterReceiver(mReceiver);}/** * finish this activiy */private void close() {this.finish();}/** * Receive the broadcast to finish activity */BroadcastReceiver mReceiver = new BroadcastReceiver() {@Overridepublic 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);}}}


 待续....

原创粉丝点击