[Android development] How to start Activity

Show start

    Intent it = new Intent(this, DialogActivity.class);
    startActivity(it);

Start the normal Activity in the current application.

Implicit start

The parameter passing method of implicit start is quite flexible, no error occurs during compilation, and many activities (system activities) that do not belong to the application can be opened.

Implicitly start the system Activity

	//参数1:action,是Activity的别名
	//参数2:Uri对象,打开的路径,通过协议来具体确定打开什么Activity
    Intent it = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.imooc.com"));
    startActivity(it);

Implicitly start normal Activity

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="abc" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    Intent it = new Intent("abc");
    startActivity(it);

startActivityForResult

Call Activity with return value

The first activity
class LearnActivity : AppCompatActivity() {
    
    
    override fun onCreate(savedInstanceState: Bundle?) {
    
    
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_learn)

        val it2 = Intent(this, LearnActivity2::class.java)
        //参数1:intent 
        //参数2:requestCode:用来区别该结果是来自于哪个Activity
        startActivityForResult(it2, 1000)
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    
    
        super.onActivityResult(requestCode, resultCode, data)
        // resultCode: 0 RESULT_CANCEL 取消
        // resultCode: -1 RESULT_OK 正确处理完后返回
        Log.e("Tag", "resultCode$requestCode")
    }
}
The second Activity
class LearnActivity2 : AppCompatActivity() {
    
    
    override fun onCreate(savedInstanceState: Bundle?) {
    
    
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_learn2)

        // 设置结果
        val it = Intent() //此时的意图不作为跳转界面使用,而是用来传递数据
        it.putExtra("myMsg", "message")
        //参数1:结果码,在上一个界面的onActivityResult方法中通过resultCode获取
        //参数2:意图对象,主要作用:放数据,在上一个界面的onActivityResult中通过data的获取
        setResult(RESULT_OK, it)
        finish()
    }
}

Guess you like

Origin blog.csdn.net/weixin_42020386/article/details/112802146