編輯:Android開發實例
接下來講一種完美的方案。
因為第一個界面是歡迎界面,所以快捷方式啟動的界面也是歡迎界面,剛開始就懷疑快捷方式創建的代碼有問題,但不知道問題出在哪兒。猜測可能會是快捷方式的錯誤導致系統創建兩個應用,就也是同一個應用會有兩個PID,結果在控制台查看打印的LOG,不同方式啟動的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
最後發現兩個PID是一致的(InitActivity是歡迎界面的Activity),可能是意外,把這兩個LOG作比較會發現從列表中點擊圖標啟動應用時是上面的LOG,通過快捷方式啟動的是下面的LOG,通過比較會發現,以快捷方式啟動應用時會比另外一種方式少了cat=[android.intent.category.LAUNCHER] ,於是乎在代碼中加上(請參照上一篇的代碼,只添加了第三行):
代碼如下:
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);
再跑應用一切OK,不會啟動兩個應用,退出也只需要一次,太給力了!至於為什麼就留給看客你了。
本文實例講述了Android學習筆記之應用單元測試。分享給大家供大家參考,具體如下: 第一步:在AndroidManifest.xml中加入如下兩段代碼: &
在java中可有兩種方式實現多線程,一種是繼承Thread類,一種是實現Runnable接口;Thread類是在java.lang包中定義的。一個類只要繼承了Th
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
本文主要講解Android應用程序簽名相關的理論知識,包括:什麼是簽名、為什麼要給應用程序簽名、如何給應用程序簽名等。 1、什麼是簽名? &