生活随笔
收集整理的這篇文章主要介紹了
Android 四大组件 —— 活动(活动的隐式跳转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上一篇我們討論了活動的顯示跳轉,現在來學習活動的隱式跳轉
????? 相比于顯式Intent,隱式Intent 則含蓄了許多,它并不明確指出我們想要啟動哪一個活動,而是指定了一系列更為抽象的action?和category?等信息,然后交由系統去分析這個Intent,并幫我們找出合適的活動去啟動。
?????? 什么叫做合適的活動呢?簡單來說就是可以響應我們這個隱式Intent 的活動,那么目前SecondActivity 可以響應什么樣的隱式Intent 呢?額,現在好像還什么都響應不了,不過很快就會有了。
??????第一步??通過在<activity>標簽下配置<intent-filter>的內容,可以指定當前活動能夠響應的action和category,打開AndroidManifest.xml,添加如下代碼:
[java]?view plaincopy
<activity??? ????????????android:name="cn.com.qiang.buttonjump.SecondActivity">?? ????????????<intent-filter?>?? ????????????????<action?android:name="jump"/>?? ????????????????<category?android:name="android.intent.category.DEFAULT"/>?? ????????????</intent-filter>?? </activity>??
?????? 在<action> 標簽中我們指明了當前活動可以響應com.example.activitytest.ACTION_START 這個action,而<category>標簽則包含了一些附加信息,更精確地指明了當前的活動能夠響應的Intent 中還可能帶有的category。只有<action>和<category>中的內容同時能夠匹配上Intent 中指定的action 和category 時,這個活動才能響應該Intent。
?
???????第二步??? 在MainAcivity 中調用setAction 及 addCategory 則可以實現隱式跳轉
[java]?view plaincopy
button1.setOnClickListener(new?OnClickListener()?{?? ?????????????? ????@Override?? ????public?void?onClick(View?v)?{?? ????????Intent?intent?=?new?Intent();?? ????????intent.setAction("jump");?? ????????intent.addCategory("android.intent.category.DEFAULT");?? ?????????????????? ????????startActivity(intent);?? ????}?? });??
重新運行程序,在MainActivity 的界面點擊一下按鈕,你同樣成功啟動SecondActivity了。不同的是,這次你是使用了隱式Intent 的方式來啟動的,說明我們在<activity>標簽下配置的action 和category 的內容已經生效了!
?
下面是具體代碼:
MainActivity 部分:
[java]?view plaincopy
package?cn.com.qiang.buttonjump;?? ?? import?android.os.Bundle;?? import?android.app.Activity;?? import?android.content.Intent;?? import?android.view.View;?? import?android.view.View.OnClickListener;?? import?android.widget.Button;?? ?? public?class?MainActivity?extends?Activity?{?? ?? ????@Override?? ????protected?void?onCreate(Bundle?savedInstanceState)?{?? ????????super.onCreate(savedInstanceState);?? ????????setContentView(R.layout.activity_main);?? ?????? ????????Button?button1?=?(Button)findViewById(R.id.button1);?? ????????button1.setOnClickListener(new?OnClickListener()?{?? ?????????????? ????????????@Override?? ????????????public?void?onClick(View?v)?{?? ????????????????Intent?intent?=?new?Intent();?? ????????????????intent.setAction("jump");?? ????????????????intent.addCategory("android.intent.category.DEFAULT");?? ?????????????????? ????????????????startActivity(intent);?? ????????????}?? ????????});?? ????}?? }??
AndroidManfest.xml 部分
[java]?view plaincopy
<?xml?version="1.0"?encoding="utf-8"?>?? <manifest?xmlns:android="http://schemas.android.com/apk/res/android"?? ????package="cn.com.qiang.buttonjump"?? ????android:versionCode="1"?? ????android:versionName="1.0"?>?? ?? ????<uses-sdk?? ????????android:minSdkVersion="8"?? ????????android:targetSdkVersion="17"?/>?? ?? ????<application?? ????????android:allowBackup="true"?? ????????android:icon="@drawable/ic_launcher"?? ????????android:label="@string/app_name"?? ????????android:theme="@style/AppTheme">?? ????????<activity?? ????????????android:name="cn.com.qiang.buttonjump.MainActivity"?? ????????????android:label="@string/app_name"?>?? ????????????<intent-filter>?? ????????????????<action?android:name="android.intent.action.MAIN"?/>?? ?? ????????????????<category?android:name="android.intent.category.LAUNCHER"?/>?? ????????????</intent-filter>?? ????????</activity>?? ?????????? ????????<activity??? ????????????android:name="cn.com.qiang.buttonjump.SecondActivity">?? ????????????<intent-filter?>?? ????????????????<action?android:name="jump"/>?? ????????????????<category?android:name="android.intent.category.DEFAULT"/>?? ????????????</intent-filter>?? ????????</activity>?? ????</application>?? ?? </manifest> ?
總結
以上是生活随笔為你收集整理的Android 四大组件 —— 活动(活动的隐式跳转)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。