android(base)Activity启动方法

来源:互联网 发布:linux oracle安装在哪 编辑:程序博客网 时间:2024/05/18 13:04

显式启动明确指定要启动的activity的class或者包名.activity类名字
方式一:class跳转
Intent intent =new Intent(Activity1.this,Activity2.class);
startActivity(intent);

public class myActivity extends Activity {    Button btnStart;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btnStart = (Button) findViewById(R.id.btn_start_second);        btnStart.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent =new Intent();                intent.setClass(myActivity.this,secondActivity.class);                startActivity(intent);}        });    }    }

方式二:包名,类名字跳转
Intent intent =new Intent();
Intent.setClassName(context,”c1”);
startActivity(intent);

public class myActivity extends Activity {    Button btnStart;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btnStart = (Button) findViewById(R.id.btn_start_second);        btnStart.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //第一种//                Intent intent =new Intent();//                intent.setClass(myActivity.this,secondActivity.class);//                startActivity(intent);                //第二种                Intent intent1 =new Intent();                intent1.setClassName(myActivity.this,"com.example.asong.test.secondActivity");                startActivity(intent1);            }        });    }    }

方式三:ComponentName跳转
Intent intent =new Intent();
intent.setComponent(new Component(context,activity2.class));
startActivity(intent);

  Intent intent =new Intent();                ComponentName componentName=new ComponentName(myActivity.this,secondActivity.class);                intent.setComponent(componentName);                startActivity(intent);

隐式启动
设置启动过滤器,通过指定Manifests文件中的action或者action和data属性,系统会查找符合条件的activity,并启动它。

Manifests文件

 <activity android:name=".secondActivity">            <intent-filter>                <action android:name="abcd.secondActivity"/>                <category android:name="android.intent.category.DEFAULT"/>            </intent-filter>            </activity>

方式一:在构造时就传入actionName
Intent intent =new Intent(“actionName”);
startActivity(intent);

 Intent intent =new Intent("abcd.secondActivity");                startActivity(intent);

方式二:构造完成后设置actionName
Intent intent =new Intent();
intent.setAction(“actionName”);
startActivity(intent);

  Intent intent =new Intent();                intent.setAction("abcd.secondActivity");                startActivity(intent);

相关面试题

显式启动与隐式启动的区别是什么?
简答:
显式指的是指定了目标组件的intent,隐式指的是通过intentfilter来匹配启动的intent,都是程序发出的请求意图。

1 0
原创粉丝点击