Uri
在android中实际做了什么?
ContactsContract.Contacts.CONTENT_URI
这里CONTENT_URI
的目的是什么?
Uri uri = data.getData();
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
为什么他们在这里使用Uri?
是否有任何 替代 的Uri?
P.S我用谷歌搜索了它,去了AndroidDevelopers网站,仍然感到困惑。
参考代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public boolean onTouchEvent(MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
startActivityForResult(new Intent
(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI),PICK_CONTACT_REQUEST);
return true;
}
return false;
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_CONTACT_REQUEST) {
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
}
不是我应该把这个名字放在这里 - > new Intent(Intent.ACTION_VIEW,
的 URI );
答案 0 :(得分:2)
Uri在android中实际做了什么?
它与互联网上的相同:它是一个地址,用于识别某些内容。 https://stackoverflow.com/questions/42891003/uriuniform-resource-identifier
也是一个URI。
uniform resource identifier (URI)的概念已存在了几十年。
CONTENT_URI的目的是什么?
这是一个标识内容集合的地址,特别是由ContactsContract
ContentProvider
管理的联系人集合。
为什么他们在这里使用Uri?
Intent
说“我想查看一些内容,其内容由此Uri
标识”。我们必须以某种方式识别内容 ,并且在Android Uri
中是识别内容的标准方式。
除此之外,问“为什么开发者X选择做Y?”?不是Stack Overflow的好格式。唯一能够明确回答这个问题的是开发者X,开发者X不太可能在这里提供帮助并看到你的问题。
Uri有替代品吗?
不一般。
不是我应该把这个名字放在这里
Intent
有几个构造函数。
将Java Class
对象作为第二个参数的构造函数是“显式Intent
”,用于标识要使用的特定组件(例如,要启动的活动)
采用操作字符串(例如ACTION_VIEW
)和可选的Uri
的构造函数是“隐式Intent
”。这标识了要执行的一些通用操作,Android将尝试识别可以处理该操作的组件。在许多情况下,针对Uri
标识的某些内容执行操作(例如,查看此网页,编辑此联系人)。
答案 1 :(得分:-1)
就像URL
(网站)一样,URI
可以帮助您存储网络地址的 ABSOLUTE PATH / LINK 或Android系统中的任何元素< em>联系A的路径。在上面的代码中,URI用于存储您尝试获取的联系人的地址(路径)。