android 系统升级 方法,Android 系统升级的对话框
近期一个任务是修改在 system/framework 出现更新的时候,系统重启展示的升级对话框。
第一步,定位文件位置。过程不必赘述,细究起来可以去研究Android系统的启动流程。
目标位置:frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
的4731行的showBootMessage()方法。
public void showBootMessage(final CharSequence msg, final boolean always) {
if (mHeadless) return;
mHandler.post(new Runnable() {
@Override public void run() {
if (mBootMsgDialog == null) {
mBootMsgDialog = new ProgressDialog(mContext) {
// This dialog will consume all events coming in to
// it, to avoid it trying to do things too early in boot.
@Override public boolean dispatchKeyEvent(KeyEvent event) {
return true;
}
@Override public boolean dispatchKeyShortcutEvent(KeyEvent event) {
return true;
}
@Override public boolean dispatchTouchEvent(MotionEvent ev) {
return true;
}
@Override public boolean dispatchTrackballEvent(MotionEvent ev) {
return true;
}
@Override public boolean dispatchGenericMotionEvent(MotionEvent ev) {
return true;
}
@Override public boolean dispatchPopulateAccessibilityEvent(
AccessibilityEvent event) {
return true;
}
};
mBootMsgDialog.setTitle(R.string.android_upgrading_title);
mBootMsgDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mBootMsgDialog.setIndeterminate(true);
mBootMsgDialog.getWindow().setType(
WindowManager.LayoutParams.TYPE_BOOT_PROGRESS);
mBootMsgDialog.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_DIM_BEHIND
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
mBootMsgDialog.getWindow().setDimAmount(1);
WindowManager.LayoutParams lp = mBootMsgDialog.getWindow().getAttributes();
lp.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_NOSENSOR;
mBootMsgDialog.getWindow().setAttributes(lp);
mBootMsgDialog.setCancelable(false);
mBootMsgDialog.show();
WindowManager.LayoutParams wlp = mBootMsgDialog.getWindow().getAttributes(); wlp.width=dip2px(460,mContext);
wlp.height=dip2px(322,mContext);
wlp.gravity= Gravity.CENTER;
mBootMsgDialog.getWindow().setAttributes(wlp); mBootMsgDialog.getWindow().findViewById(R.id.customPanel).setBackgroundColor(mContext.getResources().getColor(R.color.jidou_dialog_transparent));
}
mBootMsgDialog.setMessage(msg);
}
});
}
这里需要注意的是,配置dialog的长宽,和隐藏dialog的背景黑色。最简单的方法请看代码show()和它下面几行的设置。基本上是可以解决问题。注意要先show().
找到了,接下来就是操刀修改了。这个对话框比较简单,截图也比较麻烦,就不上图了。
android 系统升级 方法,Android 系统升级的对话框相关推荐
- android groovy方法,Android Gradle从入门到精通(三)Groovy快速入门指南
前言 在前面我们学习了为什么现在要用Gradle?和Gradle入门前奏两篇文章,对Gradle也有了大概的了解,这篇文章我们接着来学习Groovy的基础,要想学好Gradle,Groovy是必须要掌 ...
- android settext方法,Android中EditText setText方法的踩坑实战
1.平平常常中就这样开始 某一天,我准备做一个搜索功能,这个搜索功能呢大概是在主活动A中,用EditText接收输入,当EditText监听到输入框中内容有变化,跳转到活动B中,活动B中准备有搜索历史 ...
- android drawtext 方法,Android 文字绘制(DrawText)技术总结
这里的绘制文字不是直接调用TextView.setText(String content)去展示文字内容.而是在View上面通过 canvas.drawText(text, x, y,textPain ...
- 改变android背景方法,android 改变背景图片的两种方法
1.利用drawable XML 在res/drawable下创建文件,如:myselect.xml android:drawable="@drawable/buttom_focused&q ...
- android application 方法,Android Studio新建Android application配置的详细方法
Android Studio如何新建Android application配置呢?下面是小编介绍的Android Studio新建Android application配置的详细方法,有需要的小伙伴一 ...
- android bindservice方法,Android bindservice方法返回false
我想从另一个类(BaseExpandableListAdapter)的活动中调用一个方法.活动中的方法启动服务并调用bindService(,,)方法.但是,bindService方法总是返回fals ...
- android linearlayout 方法,android布局----LinearLayout布局方式
线性布局,控件成直线方式排列,要么水平排列,要么垂直排列. 对着layout文件夹右键,然后选择新建android xml file,选择资源类型选择 layout --> 根节点选择 Line ...
- android随机数方法,Android生成随机数的方法实例
本文实例为大家分享了Android生成随机数的具体代码,供大家参考,具体内容如下 java文件 package com.example.my_xm_bw_luowei; import android. ...
- android gettext方法,android – EditText不返回getText()上的内容
下面的代码片段显示了一个带有简单登录表单的Dialog.问题是当用户点击登录按钮时,输入到EditTexts的文本不会在getText() – 调用上返回.但是,如果我在xml-layout的Edit ...
- android linearlayout 方法,Android布局控件-LinearLayout详解
1.线性布局 LinearLayout LinearLayout简单来说就是线性布局,线性肯定是具有横竖两种方向的,水平和垂直. 在使用LinearLayout的时候,需要注意以下几点 2.排列方式( ...
最新文章
- 后缀自动机 ---- P3804 【模板】后缀自动机(求每个等价类最长串的出现次数)
- python学会了可以做什么菜_python学习之路(24)
- 【深入剖析Tomcat笔记】第一篇 基础知识储备
- virtualbox下给centos7固定ip
- netbeans项目缺少服务器,Netbeans,添加Glassfish服务器“不存在”
- C# 数据库系统中使用GDI+绘制柱状图
- iphone黑屏转圈_iphone7无限转圈黑屏怎么回事?
- java实现红包要多少钱_Java实现抢红包算法,附完整代码(公平版和手速版)
- [剑指offer][JAVA]面试题第[10-2]题[青蛙跳台阶问题][动态规划][递归]
- instring java_Decode a string in Java
- Mac开发环境搭建_zsh替换bash_2
- 以某种结构遍历添加的基础类
- mysql解压版配置win8_Windows安装mysql8解压版
- 桌面虚拟化之XenDesktop7
- zookeeper watcher使用注意点
- 【STM8L】STM8L之按键中断
- 斐讯K2P B1 博通TTL刷机方法
- 软件架构-redis特性和集群特性(下)
- 儿童讲堂 - 量词的解释
- 用python写名片管理系统
热门文章
- 【毕业设计】60-基于ZigBee无线智能消防\烟雾报警逃生系统设计(原理图工程、源代码、低重复率参考文档、实物图)
- 7-3 不能用循环是一件多么悲伤的事 (30 分)
- Duilib HandleMessage与MessageHandler区别
- 供配电系统之功率的运算
- 微信小程序如何设置自定义tabBar
- dos命令行连接操作ORACLE数据库
- 买翻100倍以上的股票买最受益于中国经济腾飞的少年型股票(2009-05-31 01:49:25)
- C# textBox控件焦点转移
- 制作属于自己的过狗菜刀:为菜刀添加接口
- kindeditor编辑器上传图片超宽自动压缩-PHP代码