intent主要包括隐式意图和显式意图。显式意图通常主要是启动本应用中的Activity之间的数据,而隐式意图则常见于启动系统中的某些特定的动作,比如打电话,发短信,或者是跨应用的Activity启动(如在QQ点击链接地址启动一个浏览器Activity)。
显式意图:调用Intent.setComponent()、Intent.setClass()、Intent.setClassName()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。MainActivity.javapackage cn.android.intent;
import java.util.Date;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;
public class NewActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
Intent intent = getIntent();
//Log.i("NewActivity", intent.getData().getPath());
String title = intent.getStringExtra("title");
double since = intent.getDoubleExtra("since", 1995.5);
TextView textView = (TextView) this.findViewById(R.id.textView);
textView.setText("语言:" + title + ",发布时间:" + since + "。");
}
public void closeActivity(View v) {
Intent intent = new Intent();
intent.putExtra("result", new Date().toString());
setResult(501, intent);
this.finish();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
closeActivity(null);
}
return true;
}
}
NewActivity.javapackage cn.android.intent;
import java.util.Date;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;
public class NewActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
Intent intent = getIntent();
//Log.i("NewActivity", intent.getData().getPath());
String title = intent.getStringExtra("title");
double since = intent.getDoubleExtra("since", 1995.5);
TextView textView = (TextView) this.findViewById(R.id.textView);
textView.setText("语言:" + title + ",发布时间:" + since + "。");
}
public void closeActivity(View v) {
Intent intent = new Intent();
intent.putExtra("result", new Date().toString());
setResult(501, intent);
this.finish();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
closeActivity(null);
}
return true;
}
}
main.xml
other.xml
AndroidManifest.xmlwindowsphone" />
strings.xmlHello World, MainActivity!New Activity!Android意图打开显示意图打开隐式意图关闭窗口