Это не окончательный ответ, но больше похоже на некоторые мои мысли, но уже слишком поздно, чтобы я запустил Eclipse и создал их прототип. Если это не поможет, дайте мне знать, и я постараюсь рассмотреть это глубже завтра вечером.
Несколько мыслей (надеюсь, они помогут):
1) Приложения Android на самом деле являются однопоточными, и ваша основная деятельность контролирует все события отправки (включая события, которые, как я предполагаю, являются вторым созданным вами потоком). Если вы убьете основное действие, я почти уверен, что ваше приложение прекратит выполнение сразу же после вашего первого вызова на android.os.Process.killProcess(pidofmain)
, и вы никогда не дойдете до второго вызова, потому что вы убили бы все ваше приложение. Опять же, предполагается, что по имени переменной pidofmain вы убиваете основной поток пользовательского интерфейса, а не просто действие, называемое main.
2) Мне немного любопытно также, откуда у вас pidofmain? Похоже, что у вас всего три действия, и в первом упражнении вы получаете идентификатор процесса и отправляете его второму действию в наборе намерений, которое также передается третьему действию (в котором вы пытаетесь убить все это)? Если это так, и вы пытаетесь убить текущее действие, таблица в документации, приведенной здесь, заставляет меня поверить, что вы не можете просто убить действие, которое находится в возобновленном состоянии, с помощью того же метода. Официальные Документы Android для Активности Возможно, вы захотите попробовать вызвать метод finish () для вашей текущей активности.
Что именно вы видите в logcat? А что происходит в пользовательском интерфейсе? Продолжается ли видимое действие, но другое действие было удалено из backstack?