Intent主要負責組件之間的跳轉,有兩種用法:java
1.顯式用法:android
Intent intent =new Intent(this,TargetActivity.class);app
startActivity(intent);ide
其中,this指的是當前的.java文件,TargetActivity.class便是要跳轉的頁面,簡而言之,顯式用法就是其目標組件是肯定的。this
2.隱式用法:spa
較之顯式用法,隱式用法是沒有明確的目標組件的,這裏運用了Action,Data,Category三個屬性做爲肯定目標組件的方法:如下可用程序說明:code
主Activity類:blog
package com.myreceiver.myreceiver; import sms.message.SmsSettingActivity; import com.Alarme.alarm.AlarmMainActivity; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; public class MainActivity extends Activity implements OnClickListener { public static final String SEND_ACTION = "com.myreceiver.myreceiver.ACTION"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.send).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.send: Intent intent = new Intent(SEND_ACTION); intent.putExtra("date", "這是chaos發的信息!"); sendBroadcast(intent); break; default: break; } } }); } }
獲取信息的類:get
package com.myreceiver.myreceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String date=intent.getStringExtra("date"); Toast.makeText(context, date, Toast.LENGTH_LONG).show(); } }