版权声明:转发请标明原著 https://blog.csdn.net/weixin_39460667/article/details/82464634
打开标准活动,比如打开拨号界面
Intent i = new Intent(Intent.ACTION_DIAL);
startActivity(i);
常见的其他标准活动如下,在执行相应的操作时,记得要添加权限
ACTION_MAIN | APP的入口 |
ACTION_VIEW | 用于显示用户的数据。比较通用,会根据用户的数据类型打开相应的Activity。比如`Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(“http://www.google.com”));`这样就会打开浏览器 |
ACTION_GET_CONTACT | 允许用户选择特殊种类的数据,并返回(特殊种类的数据:照一张相片或录一段音) |
ACTION_CALL | 呼叫指定的电话号码 |
ACTION_DIAL | 调用拨号面板 |
ACTION_SEND | 实现分享功能 |
ACTION_SENDTO | 发送一条消息给由数据指定的人 |
ACTION_ANSWER | 处理呼入的电话 |
ACTION_ATTACH——DATA | 别用于指定一些数据应该附属于一些其他的地方,例如,图片数据应该附属于联系人 |
ACTION_CHOOSER | 显示一个activity选择器 |
返回数据给上一个活动
首先在MainActivity用startActivityForResult() 方法打开SecondActivity
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent,1);
然后在SecondActivity设置一些数据准备传给MainActivity,setResult接收两个参数,第一个用于向上一个活动返回处理结果,一般使用RESULT_OK或RESULT_CANCELED,第二个参数就是要传递的数据。
Intent intent = new Intent();
intent.putExtra("data_return","给MainActivity的数据");
setResult(RESULT_OK,intent);
因为我们是使用startActivityForResult()方法启动的SecondActivity,所以当SecondActivity销毁时会回调上一个活动的onActivityResult()方法,因此我们需要在MainActivity中重写onActivityResult()方法
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
switch (requestCode){
case 1:
if(resultCode==RESULT_OK){
//这里就拿到了数据
String returnedData=data.getStringExtra("data_return");
}
break;
default:
}
}
( 注意:如果我们是通过按钮返回不能使用 startActivity() 方法,回调方法不会接收到我们的返回数据 )
如果用户不是通过按钮返回的上一个活动,而是通过Back键进行返回的,那么可以重写onBackPressed()方法。
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("data_return","给MainActivity的数据");
setResult(RESULT_OK,intent);
finish();
}
thanks