Android я могу избежать вызова onCreate ()? - PullRequest
1 голос
/ 01 сентября 2010

У меня есть два приложения App-1 и App-2.Приложение-2 имеет кнопку, которая запускает приложение-1.

Необходимо вести себя следующим образом: -

  1. Пользователь запускает приложение-1 (с помощью программы запуска) и действия A, B & C запускаются, а действие C находится на вершине стека действий.
  2. Обратите внимание, что точкой входа в App-1 является действие A.
  3. Пользователь нажимает клавишу возврата.
  4. Затем пользователь запускает приложение App-2.Пользователь выбирает кнопку в приложении 2 для запуска приложения 1.
  5. onClick() кнопки в приложении 2 имеет следующий код: -

    Intent i = новое намерение();i.setAction ( "com.xyz");// преобразуется в действие A в App-1 i.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);i.putExtra ("x", "y");startActivity (i);

После шага 4 вызывается onCreate() действия A, что вполне нормально.Но я хочу, чтобы Android перенес весь стек активности на первый план, так как приложение App-1 запущено, а Android его не убил (что такое же поведение, если я запустил App-1 после шага 2).

Я хочу, чтобы действие C было показано пользователю.

Пожалуйста, помогите мне, если это возможно сделать.

Я попытался выполнить действие A как singleTask & singleInstance,если я это сделаю, на передний план выводится только действие А. Это не то, что я хочу.

фрагмент манифеста приложения-1 выглядит следующим образом: -

<activity android:name=".aa.a"

         android:configChanges="orientation|keyboardHidden|locale"
         android:label="@string/app_name"
         android:theme="@android:style/Theme.NoDisplay"
         >
            <intent-filter>
             <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.DEFAULT" />
           </intent-filter>
           <intent-filter>
                 <action android:name="com.x.y.z" />
                 <category android:name="android.intent.category.LAUNCHER" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>

</activity>

1 Ответ

1 голос
/ 27 февраля 2013

FLAG_ACTIVITY_NEW_TASK информирует Android о запуске нового задания;новая задача не содержит B & C, поэтому не ожидайте, что какая-либо из них будет показана.Кроме того, FLAG_ACTIVITY_CLEAR_TOP удаляет B & C, что в точности противоположно тому, что вы хотите.

Попробуйте удалить оба флага.

...