У меня есть приложение, которое поддерживает многозадачность (работает в фоновом режиме), однако у меня возникли проблемы с бэкстеком Android.
Вот что у меня есть:
Действие A запускает действие B для результата, поэтому...
Действие А --> Действие Б
Если в действии B пользователь долго нажимает кнопку домой и переключается на другое приложение (например, браузер), а затем снова долго нажимает кнопку домой и возвращается к моего приложения, они будут в действии B, однако задний стек в это время будет выглядеть так:
Действие A --> Интернет-браузер --> Действие B
Поэтому, когда я делаю finish()
, чтобы отправить результат моего действия B, он возвращается не к моему действию A, а скорее к интернет-браузеру...
Это также имеет место, если пользователь не использует долгое нажатие кнопки домой, а также использует кнопку домой, чтобы вернуться к своей панели запуска, а затем использует долгое нажатие кнопку домой, чтобы вернуться в приложение. В этом случае задний стек еще хуже:
Главная Launcher --> Активность B
Поэтому, когда я выполняю finish()
в действии B, пользователь возвращается на свой домашний экран и никогда не может вернуться к действию A, за исключением случаев, когда он снова запускает приложение из своего ящика приложений.
Есть ли способ реализовать многозадачность в этом случае? Действие B должно всегда возвращать результат действию A, независимо от того, что пользователь открыл между этими двумя.
Intent i = new Intent(ActivityA.this, ActivityB.class); i.setAction("android.intent.action.PICK"); startActivityForResult(i, 0);
- person Gligor   schedule 26.01.2012