當前位置:首頁 » 安卓系統 » android意圖

android意圖

發布時間: 2022-07-20 17:57:06

A. Android 顯示意圖和隱式意圖的區別

意圖在android的應用開發中是很重要的,明白了意圖的作用和使用後,對開發會有很大幫助。如果沒有把意圖搞懂,以後開發應用會感覺缺些什麼。
意圖的作用:
1、激活組件

2、攜帶數據
3、意圖的匹配(運用到隱式意圖)

android基本的設計理念是鼓勵減少組件間的耦合,因此android提供了Intent(意圖),用意圖激活其他組件。Intent提供了一種通用的消息系統,它允許在你的應用程序與其他應用程序間傳遞Intent來執行和產生事件。使用Intent可以激活android應用的三個核心組件:活動、服務和廣播接收器。Intent代表了要執行的某一種想法,要乾的某一件事情。
意圖可劃分為顯式意圖和隱式意圖。

顯式意圖:調用Intent.setComponent()或Intent.setClass()方法明確指定了組件名得Intent為顯式意圖,顯式意圖明確指定了Intent應該傳遞給那個組件。
如:Intent intent = new Intent();

intent.setAction(Activity1.this,Activity2.class);
startActivity(intent);
顯式意圖很簡單,此處就不再贅述。

隱式意圖:沒有明確指定組件名得Intent為隱式意圖。android系統會根據隱式意圖中設置的動作(action)、類別(category)、數據(URI和數據類型)找到最合適的組件來處理這個意圖。

如調用電話撥號:Intent intent = new Intent();

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

intent.setData("Uri.parse("tel:") + mobile");//mobile為電話號碼(是數字)
startActivity(intent);

B. android 用意圖打開鬧鍾

start Alarm:
Intent intent = new Intent();
intent.setAction("android.intent.action.SET_ALARM");
startActivity(intent);

borrowed by:http://www.cnblogs.com/lee0oo0/archive/2012/06/24/2560170.html

C. android 接收簡訊廣播意圖 代碼如下 不工作啊 在線等待答案

我也覺得可以工作,具體看看有沒有報錯什麼的,保險起見加上intent.getAction == "android.provider.Telephony.SMS_RECEIVED"

D. Android意圖開啟了其他意圖如何返回到前面的意圖

意圖和意圖過濾器Intents and Intent Filters

一個應用程序的三個核心組件-活動,服務和廣播接收器是通過消息即意圖(Intents)來激活的。Intent息傳送是相同或不同應用中組件運行時晚綁定的一種機制。意圖本身,一個意圖對象,是一個包含被執行操作抽象描述的被動的數據結構-或者,對於廣播而言,是某件已經發生並被聲明的事情的描述。存在不同的機制來傳送意圖到每種組件中:
• 一個意圖對象是傳遞給Context.startActivity()或者Activity.startActivityForResult()來啟動一個活動或者讓一個存在的活動去做某些新的事情。
• 一個意圖對象是傳遞給Context.startService()來發起一個服務或者遞交新的指令給運行中的服務。類似的,一個意圖能被傳遞給Context.bindService() 來在調用組件和一個目標服務之間建立連接。作為一個可選項,它可以發起這個服務如果還沒運行的話。
• 傳遞給任意廣播方法(例如Context.sendBroadcast(),Context.sendOrderedBroadcast(), 或者Context.sendStickyBroadcast())的意圖對象被傳遞給所有感興趣的廣播接收者。許多種廣播產生於系統代碼。
在每個例子里,Android系統找到合適的活動,服務,或者一組廣播接收者來回應這個意圖,必要時實例化它們。這些消息傳送系統沒有重疊:廣播意圖僅被傳遞給廣播接收者,永遠不會給活動或者服務。一個傳送給startActivity()的意圖是只會被傳遞給一個活動,永遠不會給一個服務或廣播接收者,如此類推。
這篇文檔以意圖對象的描述開始,然後描述Android映射意圖到組件的規則-如何解決哪個組件應該接收一個意圖消息。對於沒有顯式命名一個目標組件的意圖,這個過程包括對照與潛在目標相關聯的意圖過濾器來測試這個意圖對象。

意圖對象Intent Objects
一個意圖Intent對象是一堆信息。它包含接收這個意圖的組件感興趣的信息(例如將要採取的動作和操作的數據)再加上Android系統感興趣的信息(例如應該處理這個意圖的組件類別和如何啟動一個目標活動的指令):
組件名稱Component name
應該處理這個意圖的組件名字. 這個欄位是一個ComponentName對象- 一個組合物:目標組件的完全合格的類名 (比如"com.example.project.app.FreneticActivity") 以及應用程序描述文件中設置的組件所在包的名字(比如, "com.example.project"). 這個組件名字的包部分和描述文件中設置的包名字不一定要匹配。
組件名字是可選的。如果被設置了,這個意圖對象將被傳遞到指定的類。如果沒有, Android使用另外的意圖對象中的信息去定位一個合適的目標- 請看本文稍後描述的意圖解析Intent Resolution。
組件名字通過如下方法:setComponent(),setClass(), 或者setClassName()設置並通過getComponent()讀取。

E. 求Android實現通過意圖來打開文件的代碼 (比如我這里有一個txt文本我需要通過第三方軟體打開

Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "text/plain");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

F. android如何通過隱式意圖尋找手機中能打開圖片、音視頻的軟體,具體代碼是怎麼寫的

java">Intentintent=newIntent();
intent.setType("image/*");//通過type來讓系統選擇視頻video/*
intent.setAction(Intent.ACTION_GET_CONTENT);

G. android怎樣獲取撥打電話的意圖的數據

使用意圖傳遞數據之通用方式。

測試應用:當前頁面點擊button傳遞數據到一個新的頁面顯示在textview中。

首先在,mainActivity.xml文件中加入一個button按鈕

<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="測試使用Intent傳遞數據" >
</Button>
然後在,MainActivity.java中加入
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//載入布局文件
button=(Button)this.findViewById(R.id.button);//獲取button
button.setOnClickListener(new View.OnClickListener() {//點擊button事件
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//創建意圖
Intent intent=new Intent(Main.this, OtherActivity.class);
//在意圖中傳遞數據
intent.putExtra("name", "張三");
intent.putExtra("age", 21);
intent.putExtra("address", "北京");
//啟動意圖
startActivity(intent);
}
});
// Log.i(TAG, "onCreate methos is executed");
}
在布局文件中,新建一個other.xml文件。
<TextView
android:id="@+id/msg"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TextView>
然後新建一個OtherActivity.class 並加入
private TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub

super.onCreate(savedInstanceState);
setContentView(R.layout.other);
textView = (TextView)this.findViewById(R.id.msg);//獲取文本框
Intent intent = getIntent();//獲取意圖對象
Integer age = intent.getIntExtra("age", 0);//獲取意圖對象數據
String name = intent.getStringExtra("name"); //獲取意圖對象數據
String address = intent.getStringExtra("address");//獲取意圖對象數據
textView.setText("age--->>"+age+"\n"+"name--->>"+name+"\n"+"address--->>"+address);//設置到文本框
}
最後不要忘記在清單文件中加入OtherActivity。
<activity android:name=".OtherActivity"></activity>

熱點內容
4k視頻存儲卡 發布:2025-01-23 09:22:13 瀏覽:842
怎麼看筆記本配置好壞怎麼對比 發布:2025-01-23 08:50:00 瀏覽:514
安卓q用起來怎麼樣 發布:2025-01-23 08:49:14 瀏覽:294
foreach資料庫 發布:2025-01-23 08:49:05 瀏覽:741
什麼是車棚配置 發布:2025-01-23 08:42:58 瀏覽:312
智能電視盒子無線網密碼在哪裡 發布:2025-01-23 08:42:14 瀏覽:277
代理提取源碼 發布:2025-01-23 08:41:35 瀏覽:62
nas網路伺服器為什麼貴 發布:2025-01-23 08:00:00 瀏覽:941
語音伺服器未連接如何連接視頻 發布:2025-01-23 07:59:11 瀏覽:883
日流量10萬需要什麼類型伺服器 發布:2025-01-23 07:58:27 瀏覽:501