Android根據包名啟動或者銷燬activity
阿新 • • 發佈:2019-01-25
1.啟動
公司需要做一個快捷啟動,就是說在熄滅螢幕的情況下,長按音量-進入你設定的應用.
在自己的應用開發過程中,有可能需要在自己的應用中啟動其他應用,此時,如果應用對外公開了自己的啟動Intent方式,可以直接建立該Intent,然後通過startActivity(myIntent)。
這種方式相信都很熟悉。
如果不知道想要啟動的應用的Intent,也有兩個方法可以實現這個功能。
1、通過反編譯這個應用的apk,在該應用的AndroidManifest.xml中找到該應用的第一個Activity,然後通過在自己的應用中直接啟動這個Activity即可。
比如在自己的應用中想通過一個按鍵直接開啟QQ,可以反編譯QQ.apk,找到啟動的Activity為com.qq.android.LoginActivity。可以直接在自己的程式碼中寫:
[java] view plain copy
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.qq.android","com.qq.android.LoginActivity"));
//前名一個引數是應用程式的包名,後一個是這個應用程式的主Activity名
startActivity(intent);
需要知道要啟動的應用的包名即可。
[java] view plaincopy
Intent intent = getPackageManager().getLaunchIntentForPackage("com.qq.android"); startAcitvity(intent);
2.銷燬
final ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
am.forceStopPackage(quickstart_packagename);