1. 程式人生 > >Android根據包名啟動或者銷燬activity

Android根據包名啟動或者銷燬activity

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);