隐式intent的其他应用
使用隐式Intent ,不仅可以启动自己程序内的Activity,还可以启动其他程序的Activity,这就使多个应用程序之间的功能共享成为了可能
一、app之间的相互调用
如在应用中需要调用联系人中的电话或者浏览器,通过隐式的intent可以实现这种功能。
代码如下:
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("https://www.baidu.com");
intent.setData(uri);
startActivity(intent);
这里的话和xml文件中的action不一致也没关系,同样能执行成功。实现效果图就是当点击login按钮时,页面跳转到百度首页。
二、activity传递数据
1.由前一个activity向后一个activity传递数据
传递数据
Intent intent = new Intent(MainActivity.this, FirstActivity_shouye.class);
String username = usernameText.getText().toString().trim();
intent.putExtra("username",username);
startActivity(intent);
接收数据
TextView userview = findViewById(R.id.usertext);
Intent intent = getIntent();
String name = intent.getStringExtra("username");
userview.setText(name);
2.由后一个activity向前一个activity传递数据
第一个activity中的代码如下:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,Second_Activity.class);
startActivityForResult(intent,1);
}
});
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String shuju = data.getStringExtra("data");
Log.d("f00",shuju);
}
break;
default:
Log.d("ww","shuju");
}
}
第二个activity的代码
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.putExtra("data","hello,MainActivity!");
setResult(RESULT_OK,intent);
finish();
}
});
总结
intent隐式使用可以用来调用其他应用。后一个activity向前一个activity传递数据的过程也是比较重要。