解析android創(chuàng)建快捷方式會(huì)啟動(dòng)兩個(gè)應(yīng)用的問題
接下來講一種完美的方案。
因?yàn)榈谝粋€(gè)界面是歡迎界面,所以快捷方式啟動(dòng)的界面也是歡迎界面,剛開始就懷疑快捷方式創(chuàng)建的代碼有問題,但不知道問題出在哪兒。猜測(cè)可能會(huì)是快捷方式的錯(cuò)誤導(dǎo)致系統(tǒng)創(chuàng)建兩個(gè)應(yīng)用,就也是同一個(gè)應(yīng)用會(huì)有兩個(gè)PID,結(jié)果在控制臺(tái)查看打印的LOG,不同方式啟動(dòng)的LOG如下:
09-22 09:39:11.929: INFO/ActivityManager(61): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.xxx/.activity.InitActivity } from pid 19304
09-22 09:39:12.876: INFO/ActivityManager(61): Displayed com.android.xxx/.activity.InitActivity: +763ms
09-22 09:39:47.668: INFO/ActivityManager(61): Starting: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.android.xxx/.activity.InitActivity bnds=[5,392][115,510] } from pid 19304
09-22 09:39:48.737: INFO/ActivityManager(61): Displayed com.android.xxx/.activity.InitActivity: +995ms
最后發(fā)現(xiàn)兩個(gè)PID是一致的(InitActivity是歡迎界面的Activity),可能是意外,把這兩個(gè)LOG作比較會(huì)發(fā)現(xiàn)從列表中點(diǎn)擊圖標(biāo)啟動(dòng)應(yīng)用時(shí)是上面的LOG,通過快捷方式啟動(dòng)的是下面的LOG,通過比較會(huì)發(fā)現(xiàn),以快捷方式啟動(dòng)應(yīng)用時(shí)會(huì)比另外一種方式少了cat=[android.intent.category.LAUNCHER] ,于是乎在代碼中加上(請(qǐng)參照上一篇的代碼,只添加了第三行):
ComponentName comp = new ComponentName(this.getPackageName(), this.getPackageName() + "." +this.getLocalClassName());
Intent intent = new Intent(Intent.ACTION_MAIN).setComponent(comp);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
再跑應(yīng)用一切OK,不會(huì)啟動(dòng)兩個(gè)應(yīng)用,退出也只需要一次,太給力了!至于為什么就留給看客你了。
- 分析Android中應(yīng)用的啟動(dòng)流程
- Android 啟動(dòng)activity的4種方式及打開其他應(yīng)用的activity的坑
- Android應(yīng)用啟動(dòng)另外一個(gè)apk應(yīng)用的方法
- Android優(yōu)化應(yīng)用啟動(dòng)速度
- Android使用Intent啟動(dòng)其他非系統(tǒng)應(yīng)用程序的方法
- android應(yīng)用實(shí)現(xiàn)開機(jī)自動(dòng)啟動(dòng)方法
- 解析Android應(yīng)用啟動(dòng)后自動(dòng)創(chuàng)建桌面快捷方式的實(shí)現(xiàn)方法
- Android筆記之:App應(yīng)用之啟動(dòng)界面SplashActivity的使用
- Android Intent啟動(dòng)別的應(yīng)用實(shí)現(xiàn)方法
- Android應(yīng)用框架之應(yīng)用啟動(dòng)過程詳解
相關(guān)文章
當(dāng)ListView有Header時(shí) onItemClick里的position不正確的原因
這篇文章主要介紹了當(dāng)ListView有Header時(shí) onItemClick里的position不正確的原因的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
Android框架Volley使用:ImageRequest請(qǐng)求實(shí)現(xiàn)圖片加載
這篇文章主要介紹了Android框架Volley使用:ImageRequest請(qǐng)求實(shí)現(xiàn)圖片加載的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-05-05
Android studio利用gradle打jar包并混淆的方法詳解
昨天準(zhǔn)備把寫好的代碼使用gradle打jar包出來,并打算加混淆。打jar包容易,結(jié)果在混淆上走了彎路。所以這篇文章主要介紹了關(guān)于Android studio利用gradle打jar包并混淆的方法,需要的朋友可以參考下。2017-03-03
Android實(shí)現(xiàn)背景圖滑動(dòng)變大松開回彈效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)背景圖滑動(dòng)變大松開回彈效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04

