編輯:關於Android編程
首先,你可以嘗試在給intent設置一些屬性。
[java]
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
如果這樣還不行,可以繼續往下讀。www.2cto.com
在我的應用中,會有一個按鈕,用戶可以通過點擊按鈕來啟動網易新聞。因為不知道網易新聞的具體的主Activity名,首先想到的就是使用通過使用包名來啟動網易新聞。得到網易新聞包名的方式很簡單,使用android的ddms工具就可以查看到。包名是:"com.netease.newsreader.activity"。
第一次寫的按鈕的點擊事件為:
[java]
Intent startapp = mContext.getPackageManager().getLaunchIntentForPackage("com.netease.newsreader.activity");
startapp.addCategory(Intent.ACTION_MAIN);
startapp.addCategory(Intent.CATEGORY_LAUNCHER);
startapp.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
mContext.startActivity(startapp);
以為這樣就輕松搞定了。後來測試發現,點擊我這個按鈕進入的網易新聞和點擊網易新聞自帶的快捷方式進入的網易新聞不是同一個。很納悶,一直都找不到原因,後來都開始懷疑是網易新聞自身的原因了。最後,一次偶然的嘗試,讓我找到了該問題的解決方案。
[java]
Intent intent = new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.setComponent(ComponentName.unflattenFromString("com.netease.newsreader.activity/.MainIndexActivity"));
mContext.startActivity(intent);
相信大家也發現不一樣的地方了。對了,就是不通過包名來啟動,而是通過網易新聞的主activity來啟動,就可以解決這個問題。
至於如何知道應用的主Activity,方法有很多,可以通過log過濾ActivityManager來看,也可以通過反編譯來看。
作者:g475266696
一、功能介紹Memcached 是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態
昨天的(今天凌晨)的博文《Android中Fragment和ViewPager那點事兒》中,我們通過使用Fragment和ViewPager模仿實現了微信的布局框架。今天
話說,從mta上報的數據上來看,我們的app出現了3起OOM(out of memery):java.lang.Throwable: java.lang.OutOfMem
本章內容第1節 列表類視圖概述第2節 列表視圖ListView第3節 下拉視圖Spinner本章目標 理解MVC模式的設計思想。了解Adapter