隨筆記錄:
? ?Android 8.0 快捷方式?ShortcutInfo? 大家應(yīng)該都不陌生了
? ? ?安卓啟動logo 長按彈出的二級菜單, 他可以去靜態(tài)設(shè)置 也可以去動態(tài)設(shè)置孝常。
??Intent intent =new Intent(this, SplashActivity.class);
intent.setAction("");
intent.putExtra("text","測試1");
Intent intent1 =new Intent(this, SplashActivity.class);
intent1.setAction("");
intent1.putExtra("text","測試2");
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N_MR1) {
List builders =new ArrayList<>();
ShortcutInfo builder1 =new ShortcutInfo.Builder(this,"admin1")
.setIcon(Icon.createWithResource(this,quickResources[0]))
.setIntent(intent)
.setShortLabel("測試1")
.setRank(0)
.build();
ShortcutInfo builder2 =new ShortcutInfo.Builder(this,"admin2")
.setIcon(Icon.createWithResource(this,quickResources[0]))
.setIntent(intent1)
.setShortLabel("測試2")
.setRank(1)
.build();
builders.add(builder1);
builders.add(builder2);
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
shortcutManager.removeAllDynamicShortcuts();
shortcutManager.addDynamicShortcuts(builders);
}
上邊就是動態(tài)設(shè)置的簡單方法?
可以在首頁長按彈出的菜單中點(diǎn)擊 跳轉(zhuǎn)到指定activity洗显。
但是-------------------------------------------------------
這里有個bug, 如果你是快捷啟動方式打開的進(jìn)程(應(yīng)用)
你在回到桌面(此時進(jìn)程還未銷毀)? 你再次使用快捷方式 打不開你的activity??
它會跳轉(zhuǎn)到 棧頂?shù)腶ctivity? ?
?怎么辦呢? 這個問題困擾了我?guī)滋?
?今天 突發(fā)奇想? 我在manifest中 給我的activity 啟動模式 設(shè)置成singletask
居然好了? ?這里就涉及到 activity啟動模式的知識點(diǎn)了??
大家可以復(fù)習(xí)一下activity四種啟動模式?
我這里就說一下 singletask的邏輯:
只要Activity在一個任務(wù)棧中存在治唤,那么多次啟動此Activity都不會重新創(chuàng)建實(shí)例箍邮,并回調(diào)onNewIntent方法茉帅,此模式啟動Activity A,系統(tǒng)首先會尋找是否存在A想要的任務(wù)棧锭弊,如果不存在堪澎,就會重新創(chuàng)建一個任務(wù)棧,然后把創(chuàng)建好A的實(shí)例放到棧中味滞;
至此樱蛤,我的問題解決了。
或許我說的不專業(yè)? 或者有什么不對的地方? 我這里僅供參考剑鞍。
?共勉W蚍病!R鲜稹便脊!