Android小技巧——Uri启动Activity

时间:2025-02-08 13:59:49

今天来跟大家说一下一个在某些情形下很实用的小技巧——通过Uri启动Activity。
首先获取某个Activity 的Uri:

    Intent intent = new Intent(this, SecondActivity.class);
    mUri = intent.toUri(Intent.URI_INTENT_SCHEME);
    Log.i("uri", "mUri=" + mUri);

通过Uri启动Activity:

 Intent intent = Intent.parseUri(mUri, Intent.URI_INTENT_SCHEME);
 MainActivity.this.startActivity(intent);

完整代码:

public class MainActivity extends AppCompatActivity {

    private String mUri;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(.activity_main);

        Intent intent = new Intent(this, );
        mUri = (Intent.URI_INTENT_SCHEME);
        ("uri", "mUri=" + mUri);

        findViewById(.test_intent).setOnClickListener(new () {
            @Override
            public void onClick(View v) {
                try {
                    Intent intent = (mUri, Intent.URI_INTENT_SCHEME);
                    MainActivity.this.startActivity(intent);
                } catch (URISyntaxException e) {
                    ();
                }
            }
        });
    }


}

适用场景:对于需要服务器灵活控制客户端界面跳转的时候,这个小技巧将会非常使用。比如某个app要搞活动,活动不同日期对应不同的活动界面。比如活动为一周,活动界面一共有ABC三个,但不确定在某天使用某个活动界面,然而通过这个小技巧,只要把ABC三个界面的Uri配置到服务器,客户端拉取到数据后,跳到指定的界面即可。至于要跳转到哪个界面,完全由服务器灵活控制。