Неявное намерение с указанным пользователем действием

Я экспериментирую, определяя свое собственное действие для использования в неявном намерении. В одном пакете я определяю два действия. ActivityTwo следует вызывать из onClick() в ActivityOne, используя неявное намерение с действием «course.labs.activitylab.MY_ACTION». Но я не смог заставить его работать.

В строках.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>

В onClick() в OnClickListener() в onCreate() в ActivityOne.java:

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

Программа вылетает в эмуляторе, и я нахожу это в окне logcat:

android.content.ActivityNotFoundException: не найдена активность для обработки намерения {act=course.labs.activitylab.MY_ACTION flg=0x8}

Что я делаю неправильно?


person John Surname    schedule 25.05.2015    source источник


Ответы (1)


Добавьте категорию по умолчанию в фильтр намерений.

<intent-filter>
    <action android:name="course.labs.activitylab.MY_ACTION" />
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
person tachyonflux    schedule 25.05.2015
comment
Я думаю, вы не можете использовать строковый ресурс в имени действия. - person tachyonflux; 25.05.2015
comment
Это исправляет это. Итак, я сделал две ошибки. Я использовал строковый ресурс в имени действия в фильтре. IDK, почему это не должно работать, и если это не сработает, IDK, почему это не обнаруживается во время сборки. И мне не удалось указать категорию фильтра намерений. Спасибо, караоке. - person John Surname; 25.05.2015
comment
Эти два требования объясняются на странице developer.android.com/guide/components/intents- фильтры.html - person John Surname; 26.05.2015