用户指定的操作的隐含意图

时间:2015-05-25 16:02:13

标签: android action activitynotfoundexception android-implicit-intent

我正在尝试,指定我自己的动作以用于隐式意图。在单个包中,我定义了两个活动。 ActivityTwo将从ActivityOne中的onClick()调用,使用带有操作“course.labs.activitylab.MY_ACTION”的隐式intent。但我无法使其发挥作用。

在strings.xml中:

<string name="myfunnystring">course.labs.activitylab.MY_ACTION</string>

在AndroidManifest.xml中:

    <activity
        android:name=".ActivityTwo"
        android:label="@string/title_activity_activity_two" >
        <intent-filter>
            <action android:name="@string/myfunnystring" />
        </intent-filter>
    </activity>

在ActivityOne.java中onCreate()的OnClickListener()中的onClick():

            Intent intent = new Intent();
            intent.setAction(getString(R.string.myfunnystring));
            intent.setFlags(Intent.FLAG_DEBUG_LOG_RESOLUTION);
            startActivity(intent);

程序在模拟器中崩溃,我在logcat窗口中找到它:

android.content.ActivityNotFoundException:找不到处理Intent的活动{act = course.labs.activitylab.MY_ACTION flg = 0x8}

我做错了什么?

1 个答案:

答案 0 :(得分:2)

将默认类别添加到您的意图过滤器。

<intent-filter>
    <action android:name="course.labs.activitylab.MY_ACTION" />
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>