Android組件交互相關(guān)應(yīng)用介紹
我們?cè)?jīng)在相關(guān)文章中對(duì)Android系統(tǒng)中的組件進(jìn)行了詳細(xì)的介紹,相信一直關(guān)注我們51CTO的編程愛好者們會(huì)對(duì)這方面的知識(shí)有一個(gè)充分的掌握。那么下面將要為大家?guī)淼膭t是Android組件交互的相關(guān)方式。
Android應(yīng)用中,由一些基本元素構(gòu)成,但如何交互呢?
- Activity->Activity:
Activity之間通過Intent進(jìn)行交互,可以通過直接類名直接跳轉(zhuǎn),也可以通過Intent Filter進(jìn)行匹配分析,然后找到對(duì)應(yīng)的Activity進(jìn)行切換,這是一種松散的藕合。
- Internal Activity:
在Activity 內(nèi)部,View,Button 等UI組件通過設(shè)定Listener對(duì)UI事件進(jìn)行監(jiān)聽處理。
- Progress->Progress:
可以采用Braodcast Intent的方式進(jìn)行與目標(biāo)組件進(jìn)行交互,也可以用一般的Intent。比如 Activity 調(diào)另一個(gè)Activity ,可以使用startActivity (new Intent(xx.this, yyy.class);方式。
- Any -> BroadcastReceiver
由發(fā)起者發(fā)送一個(gè)PendingIntent, BroadcastReceiver的onReceive(Context context, Intent intent)被調(diào)用
- Any-> ContentProvider
調(diào)用者使用 getContentResolver()方式取得 AndroidManifest.xml中配置的 ContentProvider 然后通過URi方式對(duì)其中的目標(biāo)進(jìn)行操作
- Intent intent = getIntent();
- if (intent.getData() == null) intent.setData(CONTENT_URI);
- Cursor cur = getContentResolver().query(getIntent().getData(),
- PROJECTION, null, null, null);
- Any-> Service
由發(fā)起者 context.startService(new Intent(context, XXX.class))這種方式可以調(diào)用,也可以對(duì) 注冊(cè)過的服務(wù)采用服務(wù)名稱的調(diào)用方式。
程序由生到死:
選中程序文件映像,起動(dòng)模塊起動(dòng)進(jìn)程,并發(fā)送Intent到這個(gè)進(jìn)程,這個(gè)進(jìn)程通過Intent Filter匹配到一個(gè)Activity, 運(yùn)行這個(gè)Activity的onCreate.當(dāng)用戶中止程序,或者由Android程序管理器由于內(nèi)存等原理,按該進(jìn)程優(yōu)先級(jí)別,Kill掉該進(jìn)程。
【編輯推薦】