2013-09-13 6 views
0

Any.Do Стиль «Напоминание» Диалог ... (да, белый, который отображается в системе в целом); Как это сделать?any.do системный «диалог напоминания» как?

я начать АКТИВНОСТИ X с полупрозрачный темы, так что мне нужно, чтобы запустить его с флагом «NEW_TASK» и «singleTask» для того, чтобы не иметь предыдущие АКТИВНОСТИ N в фоновом режиме.

Теперь я хочу сделать следующее:

Когда кнопка домой или назад кнопка нажата на этой АКТИВНОСТИ X, я не хочу иметь его в «backstack» больше. Как и его. Поэтому, когда приложение снова запускается из панели запуска (или переключателя задач), оно должно вернуть вас к другому действию (ДЕЯТЕЛЬНОСТЬ N).

Что она делает сейчас: При повторном выборе приложения из пусковой установки, это особенно АКТИВНОСТЬ X, которая должна исчезнуть (да, я звоню отделка() в OnPause()) возвращается живым ... всегда.

Как это сделать?

EDIT: Часть кода:

<activity 
       android:name=".ActivityX" 
       android:theme="@android:style/Theme.Translucent.NoTitleBar" 
       android:label="@string/app_name" 
       android:launchMode="singleInstance" 
       android:noHistory="true" 
       ></activity> 

И цель, которая называет эту деятельность х:

Intent intent = new Intent(getApplicationContext(), ActivityX.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY); 

Просто идея: это лучше для запуска службы вместо что появляется диалоговое окно? Потому что это на самом деле поведение, которое я хочу «имитировать», но в целом ...

+0

в 'onPause' просто называть' finish() 'на активность – tyczj

+0

Я делаю это. Но это просто скрывает активность. Тот, который раньше не возвращается, снова щелкнет значок приложения. – Reymanx

+0

, если вы нажимаете кнопку «Назад», и активность все еще присутствует, когда вы запускаете ее снова, тогда есть что-то не так, потому что кнопка «Назад» и «Вызов» заканчиваются(), оба появляются на задней стопке – tyczj

ответ

0

когда вы делаете startactivity (намерение). сразу после этого сделайте финиш() ... Это завершит действие и больше не будет присутствовать в стеке.

+0

Спасибо, но это неправда. Finish() не удаляет активность из backstack. Я не хочу начинать новую деятельность с этого. Когда он приостанавливается, он никогда не должен возвращаться в живых. – Reymanx

0

Добавить android: noHistory = "true" для Activity.

+0

Да, вот что я пробовал. Не работает. Даже установив флаг в самом намерении: «Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY' – Reymanx

+0

Вы слишком оскорбительны. Попробуйте удалить все остальные вещи и просто используйте этот флаг. –

+0

Мне нужен флаг NEW_TASK, чтобы избавиться от предыдущей «активности n», потому что в противном случае это не «общесистемный оверлей». – Reymanx

Смежные вопросы