如果我尝试注册文件关联,应用程序会在开始时挂起

时间:2014-05-12 23:03:27

标签: android android-intent

我尝试使用this question

中回答的建议注册新的文件关联

如果用户尝试打开已注册的文件类型,我想打开应用的主Activity

根据Manifest中接受的答案,我尝试过此代码

<activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="http" android:host="*"
                    android:pathPattern=".*\\.myfilextension" />
                <data android:scheme="https" android:host="*"
                    android:pathPattern=".*\\.myfilextension" />
                <data android:scheme="content" android:host="*"
                    android:pathPattern=".*\\.myfilextension" />
                <data android:scheme="file" android:host="*"
                    android:pathPattern=".*\\.myfilextension" />
            </intent-filter>
        </activity>

但是.myfilextension似乎没有正确关联,因为如果我尝试打开文件sample.myfilextension没有任何反应。

所以我试过了

<activity
            android:name=".MainActivity"
            android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http" />
            <data android:scheme="https" />
            <data android:scheme="ftp" />
            <data android:scheme="file" />
            <data android:host="*" />
            <data android:mimeType="*/*" />
            <data android:pathPattern=".*\\.myfilextension" />
       </intent-filter>
</activity>

使用此代码,如果我尝试打开文件.myfilextension并且应用程序已启动并在后台运行,一切正常,但如果在我尝试打开文件时应用程序关闭,应用程序尝试启动但挂起,在模拟器中挂起“等待调试器”所以我无法理解问题的原因。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

第二个示例代码应该有效。

  模拟器中的

挂起&#34;等待调试器&#34;

问题似乎与无法附加调试器的仿真器有关。

尝试按照以下步骤操作:

- 关闭模拟器

- 转到AVD管理器并重新创建模拟器

- 启动模拟器并尝试运行应用

或者尝试在真实设备上运行应用程序。