我的应用可以保存并加载自定义类型的文件,让我们说.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()
,我怎样才能获得被点击的文件的路径?
我已经搜索了很长时间的文档,无法解决这个问题。
答案 0 :(得分:1)
如何获取被点击的文件的路径?
您只需从传入的Intent
中检索它即可。请致电:
Intent intent = getIntent();
intent.getData().toString();
回答你的整个问题:
但是在我的活动中,onCreate()被调用,但是没有onActivityResult(),为什么?
您可以直接从method Javadoc找到答案:
当你活动退出[...]
时调用
这不是你的情况。仅在您启动的活动(从您的代码中)调用onActivityResult
。在您描述您的活动的场景中,从另一个应用程序(浏览器)调用。
onActivityResult
启动的活动结束后,将调用 startActivityForResult
答案 1 :(得分:1)
如何获取导致我的活动的文件呢?
致电getIntent()
中的onCreate()
以获取用于开始您的活动的Intent
。在那里,getData()
将返回指向文件的Uri
。