天天看點

Android啟動元件的三種主流及若幹非主流方式

                                                      本文來自

http://blog.csdn.net/liuxian13183/

 ,引用必須注明出處

啟動元件的一些方式,今天做一個簡要的總結

Service:通過startService()啟動,或者寫進AndroidManifest.xml實作自啟動

BroadCastReceiver:通過register方法注冊,或者注冊在AndroidManifest.xml中

剩下使用比較頻繁的就是Activity

三種主流方式

1、設定class

Intent intent = new Intent();

intent.setClass(MainActivity1.this, MainActivity2.class);

//intent.setClassName("com.lzx.definepermission","com.lzx.definepermission.MainActivity");

//intent.setComponent(new ComponentName("com.lzx.definepermission", "com.lzx.definepermission.MainActivity"));

startActivity(intent);

第一種又有三種方法,直接setClass,後兩種同樣适用不同于程序間的互調。

2、啟動某個應用

PackageManager manager = MainActivity.this.getPackageManager();

intent = manager.getLaunchIntentForPackage("com.lzx.definepermission");

3、隐式調用

被調用者在AndroidManifest.xml檔案的intent-filter加入action,

如:<action android:name="android.intent.action.definepermission" />

調用者:

intent.setAction("android.intent.action.definepermission");

不适用:

(1)被調用者加入了自定義權限(詳見:

Android自定義權限和使用權限

(2)被調用者使用隐私屬性,隻讓本項目中類通路

其它使用Intent屬性打開所需Activity:

Intent中的四個重要屬性——Action、Data、Category、Extras

小知識:

android:process=":remote",無論Activity或者Service都可添加次屬性

“:remote”代表此Activity需要時即被建立,"remote"代表它成為全局變量,所有的程序中公用此元件

繼續閱讀