Порядок активности Android - PullRequest
       0

Порядок активности Android

0 голосов
/ 26 февраля 2011
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="muazam.multiplication.one"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="3" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
           <activity android:label="@string/app_name" android:name=".multiplication">
            <intent-filter android:priority="1">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:label="@string/app_name" android:name=".splash">
            <intent-filter android:priority="3">
                <action android:name="android.intent.action.CLEARSCREEN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

            <activity android:label="@string/app_name" android:name=".Menu">
            <intent-filter android:priority="2">
                <action android:name="muazam.multiplication.one.Play" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>



    </application>
</manifest>

Я хочу, чтобы он сначала начинался с класса .splash, а затем с класса .Menu. Как вы видите, я поставил на них android: priority, но, похоже, он ничего не делает.

Кто-нибудь знает, как решить эту проблему? Спасибо.

Ответы [ 2 ]

3 голосов
/ 26 февраля 2011

Я хочу начать с класса .splash

Это не имеет никакого смысла в Android.

Если вы хотели сказать «Я хочу, чтобы класс .splash запускался при нажатии значка в панели запуска домашнего экрана», то вам нужно избавиться от текущего <intent-filter> класса .splash (который просто неправильно) и переместите MAIN / LAUNCHER <intent-filter> из класса .multiplication в класс. splash.

Пока вы занимаетесь этим, избавьтесь от атрибутов android:priority (которые здесь не используются) и ваших Play / DEFAULT <intent-filter> (которые вам действительно не нужны, если вы не планируете третье -партийные приложения, запускающие эту деятельность напрямую).

и затем .Menu класс

Вы делаете это в коде Java с помощью startActivity().

Как видите, я поставил на них android: priority, но, похоже, он ничего не делает.

Конечно. Для элемента <activity> нет атрибута android:priority, как вы можете видеть в документации .

1 голос
/ 26 февраля 2011

Действия не запускаются автоматически, как «слайд-шоу» (хотя вы можете написать свой собственный код таким образом, если вы действительно этого хотите).

Атрибут android:priority используется для совершенно других целей (из документов для <intent-filter> ...

Предоставляет информацию о том, как деятельность должна отвечать намерению который соответствует фильтру, относительно другие виды деятельности, которые также могут ответить на намерение. Когда намерение может обрабатываться несколькими деятельность с разными приоритетами, Android будет рассматривать только те, у кого более высокие значения приоритета как потенциальные цели для намерения.

Другими словами, если у вас есть два действия, каждое из которых имеет фильтр намерений с одинаковым действием и категорией, то любое намерение, отправленное (из стороннего приложения) с этими подробностями действия / категории, будет сначала передано в действие, чье действие Фильтр намерений имеет наивысший приоритет.

Это не имеет никакого отношения к тому, как приложение (и его действия) ведут себя внутренне во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...