Intent.toUri(0):按逆序排列

时间:2017-01-07 17:16:42

标签: android android-intent uri

我们可以简单地将Intent个对象转换为Uri个对象:

Intent intent = ...;
Uri uri = intent.toUri(Intent.URI_INTENT_SCHEME);  // The value of flag is not important for me.

怎么能以相反的顺序呢?

我的知识

有一个静态方法获取String作为参数。 (当然,它已被弃用。)

Intent.getIntent(String uri);

还有两个接受Uri的构造函数,但是那些也接受了我不知道它们的值的其他参数:

1) Intent(String action, Uri uri);
2) Intent(String action, Uri uri, Context packageContext, Class<?> cls)

我只有一个uriflags参数的值传递给toUri(int flags)

其他信息

实际上,我有一个WebResourceRequest对象来自shouldOverrideUrlLoading(WebView view, WebResourceRequest request)WebViewClient类)。

如果不注意弃用,我不会有任何问题。因为以下方式实际上很好用:

@SuppressWarnings("deprecation")
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    Intent intent = Intent.getIntent(url);
    ...
}

但已弃用shouldOverrideUrlLoading(WebView, String)Intent.getIntent(String)

1 个答案:

答案 0 :(得分:1)

Use parseUri()。引用文档:

  

从URI创建意图。如果由toUri(int)返回,则此URI可以对操作,类别和其他意图字段进行编码。如果toUri()没有生成Intent,则其数据将是整个URI,其操作将是ACTION_VIEW。