Android锁屏(四)

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);
		}
	}
}


 待续....

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值