Intent是Android程序中三大組件(活動,廣播,服務)之間進行交互的一種重要方式:
①指明當前組件想要執行的動作。
②在不同組件間傳遞數據。
Intent大致分爲兩種:
①顯式:其意圖比較明顯,就是要通過一個活動去打開另一個活動,兩者都是知道的。
button.setOnClickListener(new View.OnClickListener()){
@Override
public void onClick(){
Intent intent = new Intent(FristActivity.this,SecondActivity.class);//就是要在FristActivity中啓動SecondActivity。
startActivity(intent);
}
}
②隱式:其意圖含蓄很多,通過指定一系列抽象的action和category等信息來找到對應的啓動項。
在AndroidManifest.xml中修改action和category
<activity android:name=".SecondActivity">
<intent-filer>
<action android:name="com.example.activitytest.ACTION_START"/>
<category android:name="com.android.intent.category.DEFAULT"/>
</intent-filer>
</activity>
先通過action的信息來匹配啓動
button.setOnClickListener(new View.OnClickListener()){
@Override
public void onClick(){
Intent intent = new Intent("com.example.activitytest.ACTION_START");
startActivity(intent);
}
}
再通過action和category兩個信息來匹配啓動
button.setOnClickListener(new View.OnClickListener()){
@Override
public void onClick(){
Intent intent = new Intent("com.example.activitytest.ACTION_START");
intent.addcategory("com.android.acticitytest.MY_CATEFOY") //這條信息就和我之前預設的category不相同了。
startActivity(intent);
}
}
因爲找不到與之相同的category信息,所以程序運行後點擊button1程序會崩潰,只需修改這裏的category信息或者
在AndroidManifest.xml中添加該category信息就可以了。