【[Android] Android 使用 Greendao 操作 db sqlite-- 封装DaoUtils类1】仓廪实则知礼节,衣食足则知荣辱。这篇文章主要讲述[Android] Android 使用 Greendao 操作 db sqlite-- 封装DaoUtils类1相关的知识,希望能为你提供帮助。
上接:[android] Android 锁屏实现与总结 (一)2、Activity设置锁屏ActivityLockScreenActivity.java
上接:
[Android] Android 锁屏实现与总结 (一)
系列文章链接如下:
[Android] Android 锁屏实现与总结 (一)
[Android] Android 锁屏实现与总结 (二)
[Android] Android 锁屏实现与总结 (三)
代码文件地址:
https://github.com/wukong1688/Android-BaseLockScreen
2、Activity设置
锁屏Activity
LockScreenActivity.java
package com.jack.applockscreen.activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.telephony.TelephonyManager; import android.util.Log; import android.view.KeyEvent; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; import android.widget.Toast; import com.jack.applockscreen.R; import com.jack.applockscreen.util.Parser; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class LockScreenActivity extends AppCompatActivity implements LockScreenView.OnTriggerListener { private KeyGuardReceiver mKeyGuardReceiver; private LockScreenView mLockScreenView; private TextView mTimeView; private TextView mDateView; private static final SimpleDateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm"); private static final String[] DAY_OF_WEEK = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Parser.KEY_GUARD_INSTANCES.add(this); Window window = getWindow(); window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON ); registerKeyGuardReceiver(); //屏蔽HomesetContentView(R.layout.activity_lock_screen); initViews(); Parser.killBackgroundProcess(this); }@Override protected void onResume() { super.onResume(); // 设置该广告的左划收益和右划收益 mLockScreenView.setTargetDrawablesAndTexts( R.mipmap.ic_lockscreen_trigger, R.mipmap.ic_lockscreen_unlock, "", ""); }private void initViews() { mLockScreenView = (LockScreenView) findViewById(R.id.lock_screen_pad); mTimeView = (TextView) findViewById(R.id.time); mDateView = (TextView) findViewById(R.id.date); mLockScreenView.setTargetDrawablesAndTexts(0, R.mipmap.ic_lockscreen_unlock, null, null); mLockScreenView.setOnTriggerListener(this); Date date = new Date(); Calendar calendar = Calendar.getInstance(); mTimeView.setText(TIME_FORMAT.format(date)); String dateString = (calendar.get(Calendar.MONTH) + 1) + "月" + calendar.get(Calendar.DAY_OF_MONTH) + "日 " + DAY_OF_WEEK[calendar.get(Calendar.DAY_OF_WEEK) - 1]; mDateView.setText(dateString); }@Override public void onBackPressed() {}public boolean onKeyDown(int keyCode, KeyEvent event) { int key = event.getKeyCode(); switch (key) { case KeyEvent.KEYCODE_BACK: { return true; } case KeyEvent.KEYCODE_MENU: { return true; } } return super.onKeyDown(keyCode, event); }private void registerKeyGuardReceiver() { if (null == mKeyGuardReceiver) { mKeyGuardReceiver = new KeyGuardReceiver(); registerReceiver(mKeyGuardReceiver, new IntentFilter()); } }private void unregisterKeyGuardReceiver() { if (mKeyGuardReceiver != null) { unregisterReceiver(mKeyGuardReceiver); } }// 4.0以上无法屏蔽Home键,所以没什么作用 class KeyGuardReceiver extends BroadcastReceiver {static final String SYSTEM_REASON = "reason"; static final String SYSTEM_HOME_KEY = "homekey"; // home key static final String SYSTEM_RECENT_APPS = "recentapps"; // long home key@Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) { String reason = intent.getStringExtra(SYSTEM_REASON); if (reason != null) { if (reason.equals(SYSTEM_HOME_KEY)) { finish(); } else if (reason.equals(SYSTEM_RECENT_APPS)) { } } } else if (action.equals(TelephonyManager.ACTION_PHONE_STATE_CHANGED) || action.equals(Intent.ACTION_NEW_OUTGOING_CALL)) { finish(); } } }// 左划 @Override public void onTriggerLeft() { showToast("解锁成功"); finish(); }// 右划 @Override public void onTriggerRight() { showToast("解锁成功"); finish(); }private void showToast(String str) { Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show(); }/** * 网络中断时缓存收益信息 */ private void saveProfitCache(String action, String phone, float profit, String advertiseId) {}@Override protected void onDestroy() { unregisterKeyGuardReceiver(); super.onDestroy(); }}
注意:
FLAG_DISMISS_KEYGUARD用于去掉系统锁屏页,FLAG_SHOW_WHEN_LOCKED使Activity在锁屏时仍然能够显示。
同时记得需要加入权限到manifest中
< uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
对应布局文件activity_lock_screen.xml:
< ?xml version="1.0" encoding="utf-8"?> < FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#6c6c6c"> < com.jack.applockscreen.activity.LockScreenView android:id="@+id/lock_screen_pad" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_marginBottom="36dp"> < /com.jack.applockscreen.activity.LockScreenView> < RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="32dp" android:paddingRight="32dp" android:paddingTop="50dp"> < TextView android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:textColor="@android:color/white" android:textSize="36dp" android:typeface="serif" /> < TextView android:id="@+id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginTop="8dp" android:textColor="@android:color/white" android:textSize="16dp" android:typeface="serif" /> < /RelativeLayout> < /FrameLayout>
下接文件:
[Android] Android 锁屏实现与总结 (三)
本博客地址: wukong1688
本文原文地址:https://www.cnblogs.com/wukong1688/p/10725092.html
转载请著名出处!谢谢~~
推荐阅读
- 使用机智云APP控制战舰V3 (转)
- Dapper的应用
- 如何构建一个没有编码的移动应用程序()
- 5个最好的Bootstrap替代工具推荐
- 11种促进Android应用开发的工具
- 你应该知道的10个最佳JavaScript框架
- 9种构建小型企业应用程序的最佳Python框架
- 初学者的区块链介绍
- 如何成为前端开发人员(2020版)()