标签:
Android四核心activity,service,broadcast receiver和content provider。除了content provider之外,彼此的通信都要使用Intent对象来进行。
Intent对象描述了要执行的结果是什么,基本内容可以氛围:componentName组件名称,action动作名称,data数据,category类别,extra返家数据和flag标志位6个部分。
所谓的显示intent就是我们常用的Intent.setclass(xxx.this,xxx.class),也就是指定componentName组件名称。
相对的隐式调用就是没有明确指出目标组件名称的情况。
指定action的动作名称
Uri uri = Uri.parse("http://www.baidu.com"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); MainActivity.this.startActivity(intent);
传递Extra字符串,使用startActivityForResult
重写方法:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 100) { Toast.makeText(MainActivity.this, data.getStringExtra("data"), Toast.LENGTH_SHORT).show(); } super.onActivityResult(requestCode, resultCode, data); }
启动跳转
findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, Secend.class); startActivityForResult(intent, 100); } });
Secend.class
findViewById(R.id.secend_bt).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String str = "secend activity msg"; Intent intent = new Intent(); intent.putExtra("data", str); Secend.this.setResult(RESULT_OK, intent); Secend.this.finish(); } });
startActivityForResult方法,与startActivity类似。
不同点为:startActivity仅仅跳转目标界面,而startActivityForResult跳转的界面,如果调用了finish(),还会自动跳转回来。
标签:
原文地址:http://www.cnblogs.com/lyxin/p/5799809.html