连接USB线,关机闹铃响后在闹铃界面选择直接开机,开机后界面显示灰色

来源:互联网 发布:mac修改快捷键设置 编辑:程序博客网 时间:2024/04/30 23:54
步骤:设置闹铃后关机,连接USB线,关机闹铃时间到,选择睡眠,闹铃第2次响起后,在闹铃界面往右滑动时钟图标开机,开机后,弹出USB存储设备,点击Home键
结果:界面显示灰色,只能下拉状态栏,无法进行其他操作,手机上锁解锁后恢复正常。

预期结果:界面显示正常,能正常使用。


log 分析,没有抓到DB log,只有Launcher3 的ANR 异常

解决办法: 使用下面的函数。替换原来的!

alps\mediatek\frameworks-ext\base\services\java\com\android\server\am\PowerOffAlarmUtility.java


private final void registerNormalBootReceiver(Context context) { 
IntentFilter filter = new IntentFilter(); 
filter.addAction("android.intent.action.normal.boot"); 
filter.addAction("android.intent.action.normal.shutdown"); 
filter.addAction(ALARM_BOOT_DONE); 
filter.addAction(REMOVE_IPOWIN); 
mFirstBoot = true; 


context.registerReceiver(new BroadcastReceiver() { 
@Override 
public void onReceive(Context context, Intent intent) { 
if (intent == null) { 
return; 

String action = intent.getAction(); 
if ("android.intent.action.normal.boot".equals(action)) { 
Log.i(TAG, "DeskClock normally boots-up device"); 
if (mRollback) { 
checkFlightMode(false, false); 

if (mFirstBoot) { 
// set mBooting 
synchronized (mStack.mService) { 
mAmPlus.setBootingVal(true); 
mStackSupervisor.resumeTopActivitiesLocked(); 

} else { 
synchronized (mStack.mService) { 
mAmPlus.IPOBootCompletedLocked(); 


} else if ("android.intent.action.normal.shutdown" 
.equals(action)) { 
Log.v(TAG, "DeskClock normally shutdowns device"); 
mStack.mService.createIPOWin(mContext); 
if (mRollback) { 
checkFlightMode(false, true); 

} else if (REMOVE_IPOWIN.equals(action)) { 
mStack.mService.removeIPOWin(mContext); 


}, filter); 


0 0