1)显示Intent使用 通过调用setClass()或setComponet()设置组件的意图。给定了调用组件的名称。 举例,Activity参数传递: 传递参数: Intent intent = new Intent(MainActivity.this, TwoActivity.class); intent.putExtra("age", 10); intent.putExtra("name", "Savant Pan"); 或用Bundle对象携带数据。 Bundle bundle = new Bundle(); bundle.putString("name", "Savant Pan"); bundle.putInt("age", 26); intent.putExtras(bundle); startActivity(intent); //不发送请求码时; MainActivity.this.startActivityForResult(intent, 3); //set a requestCode 3,发送请求码时,并重写 onActivityResult();方法。 取得数据: Intent intent=this.getIntent(); String name = intent.getStringExtra("name"); 关闭时传回数据: Override onActivityResult(); setResult(12, intent); //send back with a resultCode requestCode和resultCode 请求码用于标识来源,比如有两个按钮同时打开一个Activity,则用它区分请求来源。 结果码用于标识返回结果来自哪一个Activity。 主动关闭Activity,finish(); 而不是等待系统去完成。 2)隐式Intent 意图对像本身并不知道要传递给哪个组件,至于传递给哪个组件是由Android平台来决定的。 举例,电话播号器: private Intent callIntent; callIntent = new Intent(Intent.ACTION_CALL , Uri.parse("tel:"+phone)); startActivity(callIntent); 在Mainifist文件中注册 <uses-permission android:name="android.permission.CALL_PHONE"/> 发短信: SmsManager smsManager = SmsManager.getDefault(); <uses-permission android:name="android.permission.SEND_SMS"/> 还有,如广播接收者。
作者:savant-pan, 微博 http://weibo.com/panxuewen,欢迎交指正、交流。
|