Andorid 啟動桌面異常

2021-10-18 03:30:55 字數 1472 閱讀 2281

受此提交影響,在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...