在app中開啟外部app

筆記一下開外部app的寫法

private void startOthersApp(String packagename) {
Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
try {
i = manager.getLaunchIntentForPackage(packagename);

if (i == null)
throw new PackageManager.NameNotFoundException();
else {
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
} catch (PackageManager.NameNotFoundException e) {
}
}

android emulator "Unfortunately, launcher has stopped."

從API 18(Android 4.3)開始我的模擬器就呈現跑不動的狀態,跑些自己寫的簡單demo還可,反倒是點個應用程式清單去看所有App就掛了,連launcher都掛掉還以為是bug哩XD

其實是VM heap給不夠,可能Android 4.3之後heap吃重程度大吧?!
調大就好,如下圖

參考網址
http://ktatsiu.wordpress.com/2013/10/15/fixing-android-emulator-unfortunately-launcher-has-stopped/

另外,關於stack vs. heap的解釋
http://antrash.pixnet.net/blog/post/70456505-stack-vs-heap%EF%BC%9A%E5%9F%B7%E8%A1%8C%E6%99%82%E6%9C%9F%E5%84%B2%E5%AD%98%E5%85%A9%E5%A4%A7%E8%A6%81%E8%A7%92