Android 从文件浏览器获取意图后获取结果

Android 从文件浏览器获取意图后获取结果,android,android-intent,Android,Android Intent,我的应用程序可以保存和加载自定义类型的文件,比如.foo 我的清单上说: <activity android:name=".activity.LoadActivity" android:label="dummy"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="

我的应用程序可以保存和加载自定义类型的文件,比如.foo

我的清单上说:

<activity
    android:name=".activity.LoadActivity"
    android:label="dummy">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="file" />
        <data android:host="*" />
        <data android:pathPattern=".*\\.foo" />
    </intent-filter>
</activity>

这样,当浏览器试图打开.foo文件时,我就可以启动我的活动

但是在我的活动中,
onCreate()
被调用,而不是
onActivityResult()
,我如何获取被单击文件的路径

我已经查了很长一段时间的医生了,我想不出来

如何获取单击的文件的路径

您只需从传入的
Intent
中检索它即可。只要打电话:

Intent intent = getIntent();
intent.getData().toString();
要回答你的全部问题:

但是在我的活动中,调用了onCreate(),但没有调用onActivityResult(),为什么

您可以直接从以下网址找到答案:

当活动启动时调用退出[…]

这不是你的情况<代码>onActivityResult仅在您(从代码)启动的活动上调用。在描述活动的场景中,从另一个应用程序(浏览器)调用活动

使用方法启动的活动结束后,将调用onActivityResult


那么,我如何获取导致我的活动的文件


onCreate()
中调用
getIntent()
,以获取用于启动活动的
Intent
。在那里,
getData()
将返回指向该文件的
Uri

“但是在我的活动中,调用了onCreate(),但没有调用onActivityResult(),为什么?”--因为大概不应该调用
onActivityResult()
。只有在调用
startActivityForResult()
时才会调用该函数。你的问题中没有任何东西表明你打过这样的电话。请解释您认为应该调用
onActivityResult()
的原因。我如何获取导致我的活动的文件?好的,我得到了,但由于调用来自浏览器(例如ES explorer),我如何获取该文件?您应该能够从
onCreate
回调中获取该文件。只需调用:
Intent-Intent=getIntent()
intent.getData().toString()