在Android开发过程中,相信你对Intent这个东西并不陌生,它的作用非常广泛,可以用来传递广播,启动另一个Activity,甚至启动另一个应用程序,注意,有一点非常重要,就是可以在一个应用程序只用启动另一个应用程序,这里使用到的东西就是Intent。

    Intent有几个非常重要的部分:

                                                  1.Component name--组件名,用于指定所要打开的另一个Activity

                                                  2.Action--这是指定Intent的动作,即希望这个Intent做什么

                                                  3.Data--为Intent添加数据,这个数据是一个URI类型的值

                                                  4.Extras--这是希望在Intent中添加的附加值,是以键值对的方式存储的

  下面作者以一个例子应用Intent实现启动另一个Activity,调用打电话和发送短信的内置应用程序:

 

public class MainActivity extends Activity {  
  1.     private Button button1;  
  2.     private Button button2;  
  3.     private Button button3;  
  4.   
  5.     @Override  
  6.     protected void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.activity_main);  
  9.         button1=(Button)findViewById(R.id.button1);  
  10.         button2=(Button)findViewById(R.id.button2);  
  11.         button3=(Button)findViewById(R.id.button3);  
  12.         button1.setOnClickListener(new OnClickListener() {  
  13.               
  14.             @Override  
  15.             public void onClick(View arg0) {  
  16.                 // TODO Auto-generated method stub   
  17.                 final Intent intent=new Intent(MainActivity.this, OtherActivity.class);  
  18.                 startActivity(intent);  
  19.             }  
  20.         });  
  21.         button2.setOnClickListener(new OnClickListener() {  
  22.               
  23.             @Override  
  24.             public void onClick(View v) {  
  25.                 // TODO Auto-generated method stub   
  26.                 Intent intent=new Intent();  
  27.                 /*要执行的动作*/  
  28.                 intent.setAction("android.intent.action.CALL");  
  29.                 //绑定数据   
  30.                 intent.setData(Uri.parse("tel:"+"123456789"));  
  31.                 //激活打电话组件 通过隐式意图 另外不要忘记在清单文件中注册一下打电话的权限   
  32.                 startActivity(intent);  
  33.             }  
  34.         });  
  35.         button3.setOnClickListener(new OnClickListener() {  
  36.               
  37.             @Override  
  38.             public void onClick(View v) {  
  39.                 // TODO Auto-generated method stub   
  40.                 Uri uri=Uri.parse("smsto:987654321");  
  41.                 Intent intent=new Intent(Intent.ACTION_SENDTO,uri);  
  42.                 intent.putExtra("sms_body""This is SMS text!!!");  
  43.                 startActivity(intent);  
  44.             }  
  45.         });  
  46.     }  
  47.   
  48.     @Override  
  49.     public boolean onCreateOptionsMenu(Menu menu) {  
  50.         // Inflate the menu; this adds items to the action bar if it is present.   
  51.         getMenuInflater().inflate(R.menu.activity_main, menu);  
  52.         return true;  
  53.     }  
  54.   
  55. }  



 

 

程序运行的效果如图所示