Intent

weixin_33936401發表於2018-01-07

Intent 是 Android 程式中各元件之間進行互動的一種重要方式,它不僅可以執行當前元件想要執行的動作,還可以在不同元件之間傳遞資料。Intent一般可被用於啟動活動、啟動服務以及傳送廣播等場景。

Intent 大致可以分為兩種:顯式 Intent 和隱式 Intent。

顯式:Intent 有多個建構函式的過載,其中一個是Intent(Context packageContext,Class<?>cls)。這個建構函式接收兩個引數,第一個引數Context要求提供一個啟動活動的上下文,第二個引數class 則是指定想要啟動的目標活動,通過這個建構函式就可以構建出Intent 發"意圖"。Activity 類中提供了一個startActivity() 方法,這個方法是專門用於啟動活動的,它接收一個 Intent 引數,將構造好的 Intent 傳入startActivity () 方法就可以啟動活動目標了。
eg:

  button.setOnClickListener(new View.OnClickListener()){
  @Override
  public void onClick(View v){
        Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
        startActivity(intent);
      }
  }

隱式 Intent 相比於顯式要含蓄了許多,它並不明確指出我們想要啟動哪一個活動,而是指定了一系列更為抽象的 action 和 category 的資訊,然後交由系統去分析這個 Intent,並幫我們找出合適的活動去啟動。

<activity android:name=".SecondActivity">
  <intent - filter>
      <action android:name="com.example.activitytest.ACTION_START" />
      <category android:name="android.intent.category.DEAFULT" />
  </intent - filter>
</activity>

相關文章