今天来跟大家说一下一个在某些情形下很实用的小技巧——通过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配置到服务器,客户端拉取到数据后,跳到指定的界面即可。至于要跳转到哪个界面,完全由服务器灵活控制。