android------锁屏(手机启动出现锁屏界面)
以前用过一个红包锁屏的软件,第一次打开手机出现锁屏,滑动领取收益,当时觉得这功能不错,就查阅资料,写了一个案例,
apk运行流程: 进入软件---》启动服务---》关闭手机(可先退出应用)--》再打开手机即可看见锁屏界面
效果图:
当然这个案例还是有缺点的,没考虑性能问题。
界面是可以随意修改的,滑动的是一个自定义控件。
服务类
public class AppService extends Service { private AppReceiver mLockScreenReceiver; private IntentFilter mIntentFilter = new IntentFilter();
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
} @Override
public int onStartCommand(Intent intent, int flags, int startId) {
// 监听屏幕关闭和打开的广播必须动态注册
mIntentFilter.addAction(Intent.ACTION_BOOT_COMPLETED);
mIntentFilter.addAction(Intent.ACTION_SCREEN_OFF);
mIntentFilter.addAction(Intent.ACTION_SCREEN_ON);
mIntentFilter.addAction(Intent.ACTION_TIME_TICK);
// 设置广播的优先级
mIntentFilter.setPriority(Integer.MAX_VALUE);
if (null == mLockScreenReceiver) {
mLockScreenReceiver = new AppReceiver();
mIntentFilter.setPriority(Integer.MAX_VALUE);
registerReceiver(mLockScreenReceiver, mIntentFilter);
Toast.makeText(getApplicationContext(), "AppService", Toast.LENGTH_LONG).show(); }
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setTicker("APP正在运行");
builder.setAutoCancel(false);
builder.setContentTitle("APP正在运行");
builder.setContentText("您的收益正在累积");
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentIntent(PendingIntent.getActivity(this, 0, new Intent(this, LockScreenActivity.class), PendingIntent.FLAG_UPDATE_CURRENT));
Notification n = builder.build();
// 通知栏显示系统图标
startForeground(0x111, n); Parser.killBackgroundProcess(this);
return START_STICKY;
} @Override
public void onDestroy() {
if (mLockScreenReceiver != null) {
unregisterReceiver(mLockScreenReceiver);
mLockScreenReceiver = null;
}
super.onDestroy();
// 重启服务
startService(new Intent(this, AppService.class)); } }
源码有点多就不一一贴出来了,直接下载源码即可。
有兴趣的小伙伴可以参考,一起研究。
源码点击下载:https://github.com/DickyQie/android-system
android------锁屏(手机启动出现锁屏界面)的更多相关文章
- Android开发11——手机横屏和竖屏与android:configChanges
目前大多数手机都支持重力感应随之而来的就是屏幕方向改变的问题.对应普通开发者来说屏幕的随意改变也会带来困扰.在Google自带的doc里可以看到,如果设备的配置(Resources.Configura ...
- 【Android】去除应用启动时黑屏现象
http://www.eoeandroid.com/blog-1169143-47979.html 在AndroidManifest里面定义的时候,在启动的Activity,添加android:the ...
- android应用程序第一次启动时显示引导界面
市面上好多优秀的应用(举例新浪微博.UC浏览器)都采用了欢迎页面与使用向导的方式给用户带来了良好的用户体验. 一般来说用户第一次安装应用或者安装了新版本后第一次进入应用都会显示成 欢迎页面-使用向导- ...
- Android仿微信QQ等实现锁屏消息提醒
demo代码如下: import android.content.Intent; import android.os.Bundle; import android.support.v7.app.App ...
- android开发 锁屏 真正的锁屏,是go锁屏那种。
想做个锁屏界面很久了,最近一周,历经千辛万苦,越过种种挫折,终于完美实现了这一要求,在此将锁屏思路分享出来. 注意:这不是什么一键锁屏,是类似“go锁屏”那样的锁屏界面. 准备:本程序共需要 两个ac ...
- android黑科技系列——修改锁屏密码和恶意锁机样本原理分析
一.Android中加密算法 上一篇文章已经介绍了Android中系统锁屏密码算法原理,这里在来总结说一下: 第一种:输入密码算法 将输入的明文密码+设备的salt值,然后操作MD5和SHA1之后在转 ...
- Android Activity启动黑/白屏原因与解决方式
Android Activity启动黑/白屏原因与解决方式 我们新建一个HelloWorld项目,运行在手机上时,Activity打开之前会有一个动画,而这个动画里是全白或者全黑的(取决于你的主题是亮 ...
- Xamarin.Android splash页面瞬间响应_避免APP启动闪白屏
Application和Activity中的onCreate都进行了优化,基本没有耗时操作,但是启动应用之后还是会闪现一下白色背景,然后才进入Splash页面,对比了一下QQ.微信.微博等客户端,点击 ...
- Android 避免APP启动闪黑屏的解决办法(Theme和Style)
前几天Boss就反应说,机器每次启动程序都会闪一下黑屏,这个客户不接受.没办法,只能想想怎么解决,最后找到了下面的方法.闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和on ...
随机推荐
- Python 迭代器切片
函数itertools.islice() 正好适用于在迭代器和生成器上做切片操作 >>> def count(n): ... while True: ... yield n ... ...
- python-正则表达式练习题
1.匹配一行文字中的所有开头的字母内容 #coding=utf-8 import re s="i love you not because of who you are, but becau ...
- nginx+tomcat把带WWW域名自动跳转到不带www域名方法
nginx+tomcat把带WWW域名自动跳转到不带www域名方法在nginx.conf里面 include /etc/nginx/conf.d/*.conf;在应该server里增加: if ($h ...
- C++提供了四个转换运算符
const_cast <new_type> (expression) static_cast <new_type> (expression) reinterpret_cast ...
- Contiki源码+原理+功能+编程+移植+驱动+网络(转)
源:Contiki源码+原理+功能+编程+移植+驱动+网络 请链接:http://www.rimelink.com/nd.jsp? id=31&_np=105_315 假设您对于用Contik ...
- Redis计算地理位置距离-GeoHash
Redis 在 3.2 版本以后增加了地理位置 GEO 模块,意味着我们可以使用 Redis 来实现摩拜单车「附近的 Mobike」.美团和饿了么「附近的餐馆」这样的功能了. 地图元素的位置数据使用二 ...
- 关于windows下c++生成的exe发布时的依赖dll问题
如同linux下通常要求安装特定版本的libstdc++一样,windows下vc++生成的exe发布时的依赖dll问题,可以参见帖子,http://bbs.csdn.net/topics/39105 ...
- mongodb 最佳可视化工具mongobooster
最好用的mongodb GUI工具 mongobooster,没有之一,可从https://mongobooster.com/下载 常见管理命令可参考,http://www.cnblogs.com/l ...
- SQLSERVER 数据从一张那个表复制到另一张表
insert into 表名1 ( 字段A ,字段B ,字段C) SELECT 字段A ,字段B ,字段C FROM 表名2 (where条件看情况而定)
- Docker 下安装 Spark
1. 安装Docker, 见上篇. 2. 安装ubuntu: docker run --name dcSpark ubuntu 3. 运行 Bash: docker exec -ti d ...