受此提交影響,在starthomeactivity時不能再使用以下**:
google提交:
新增了activitytype來判斷應用是否能啟動home。
從此,以下**將會丟擲異常:
intent homeintent = new intent(intent.action_main);
homeintent.addcategory(intent.category_home);
startactivity(homeintent);
先給結論:
startactivity時指定componentname,或者再加個category,比如addcategory(intent.category_default);
分析一下**:
private void setactivitytype(boolean componentspecified, int launchedfromuid, intent intent,
activityoptions options, activityrecord sourcerecord)
} else if (realactivity.getclassname().contains(legacy_recents_package_name) ||
activitytype = activity_type_recents;
} else if (options != null && options.getlaunchactivitytype() == activity_type_assistant
&& canlaunchassistactivity(launchedfrompackage))
setactivitytype(activitytype);
}
主要在檢查home時修改了activitytype值
1.
private boolean canlaunchhomeactivity(int uid, activityrecord sourcerecord)
// allow the recents component to launch the home activity.
final recenttasks recenttasks = mstacksupervisor.mservice.getrecenttasks();
if (recenttasks != null && recenttasks.iscallerrecents(uid))
// resolver activity can launch home activity.
return sourcerecord != null && sourcerecord.isresolveractivity();
}
2.
private boolean ishomeintent(intent intent)
Andorid系統靜態註冊實現開機啟動
一 靜態註冊實現開機啟動 1.在之前的 中,我們編寫的是動態註冊,用到了內部類等。動態註冊只能在程式啟動之後才能生效。接下來我們將要使用靜態註冊的方式進行註冊。可以舉例開機啟動項 package com.example.broadcasttest2 import android.content.br...
CentOS不啟動桌面
centos多數是用來做伺服器用,可以選擇用gnome配置伺服器引數,配置好了以後以字元模式啟動。vim etc inittab 找到 id 5 initdefault 改為 id 3 initdefault 即可 startx 即可進入gnome桌面。centos不啟動桌面可以通過修改系統執行級別...
rsync啟動異常
rlinux下rsync 伺服器啟動錯誤 1 failed to create pid file var run rsyncd.pid file exists 使用rm var run rsyncd.pid 再重新啟動rsync服務 rsync daemon config etc rsyncd.co...