【问题标题】:Launching an Activity with an Intent使用 Intent 启动 Activity
【发布时间】:2013-01-23 03:14:46
【问题描述】:

我的 AndroidManifest 中有以下内容:

<activity android:name="IntentChild"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.EDIT" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="vnd.intent.cursor.item/intent_example"
              android:host="example.intent"
              android:path="intent_example"
              android:scheme="content"
        />
    </intent-filter>
</activity>

我使用

启动活动
Uri uri = new Uri.Builder().scheme("content").authority("example.intent").appendPath("intent_example").build(); 
Intent intent = new Intent(Intent.ACTION_EDIT, uri); 
IntentExample.this.startActivity(intent);

但我明白了:

E/AndroidRuntime(865): android.content.ActivityNotFoundException: 没有找到处理 Intent { act=android.intent.action.EDIT dat=content://
example.intent/intent_example }

我做错了什么?另外,Uri.Builder.authority() 是否与清单中 &lt;data&gt; 标记的 android:host 属性相同?

【问题讨论】:

  • 看来我必须使用intent.setDataAndType(uri, "vnd.intent.cursor.item/intent_example"); 并取出android:host 属性才能启动活动。不知道为什么host 不起作用。
  • @A--C 谢谢。我会试试看。随时发布实际答案。

标签: android android-intent android-activity


【解决方案1】:

在@A--C 的评论提示下,我最终添加了对Intent.setType() 的调用以设置所需的 MIME 类型:

Uri uri = new Uri.Builder().scheme("content").authority("example.intent").appendPath("intent_example").build(); 
Intent intent = new Intent(Intent.ACTION_EDIT, uri); 
intent.setType("vnd.intent.cursor.item/intent_example");
IntentExample.this.startActivity(intent);

为简单起见,我还修剪了我的&lt;intent-filter&gt;,只声明android:mimeType。我猜想,但不完全确定,这不像之前的变化那么重要。

<activity android:name="IntentChild"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.EDIT" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="vnd.intent.cursor.item/intent_example"/>
    </intent-filter>
</activity>

【讨论】:

    猜你喜欢
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多