BadTokenException ActivityGroup для TabActivity, используя

Мне нужно реализовать вложенные действия в TabHost в моем приложении. Я использую такой класс ActivityGroup:

public class CustomActivityGroup extends ActivityGroup { View rootView; public static CustomActivityGroup group; private ArrayList<View> history; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.history = new ArrayList<View>(); group = this; View view = getLocalActivityManager().startActivity("LoginActivity", new Intent(this,RegisterActivity.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView(); replaceView(view); } @Override protected void onResume() { super.onResume(); this.history = new ArrayList<View>(); group = this; } public void replaceView(View v) { if (history.size() == 0) { if (rootView != null) { history.add(rootView); rootView = null; } } history.add(v); setContentView(v); } public void back() { try { if (history.size() > 0) { history.remove(history.size() - 1); if (history.size() > 0) { setContentView(history.get(history.size() - 1)); } else { finish(); } } else { finish(); } } catch (Exception ex) { } } public int getHistorySize() { return history.size(); } @Override public void onBackPressed() { try { CustomActivityGroup.group.back(); } catch (Exception ex) { } return; } } 

И в моей TabActivity:

  intent = new Intent().setClass(this, CustomActivityGroup.class); spec = tabHost.newTabSpec("tab_2").setIndicator("Sign up",getResources().getDrawable(R.drawable.signup)).setContent(intent); tabHost.addTab(spec); 

Но когда я нажимаю на соответствующую вкладку, я получаю

  FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.assignmentexpert/com.activitygroups.CustomActivityGroup}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.assignmentexpert/com.assignmentexpert.RegisterActivity}: android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@405ceb00 is not valid; is your activity running? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) at android.app.ActivityThread.startActivityNow(ActivityThread.java:1491) at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:676) at android.widget.TabHost.setCurrentTab(TabHost.java:348) at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:141) at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:456) at android.view.View.performClick(View.java:2485) at android.view.View$PerformClick.run(View.java:9080) at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:3687) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.assignmentexpert/com.assignmentexpert.RegisterActivity}: android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@405ceb00 is not valid; is your activity running? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) at android.app.ActivityThread.startActivityNow(ActivityThread.java:1491) at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) at com.activitygroups.CustomActivityGroup.onCreate(CustomActivityGroup.java:31) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) ... 18 more Caused by: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@405ceb00 is not valid; is your activity running? at android.view.ViewRoot.setView(ViewRoot.java:532) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) at android.view.Window$LocalWindowManager.addView(Window.java:424) at android.app.Dialog.show(Dialog.java:241) at com.asynctaskbase.AbstractTaskProgressDialogFragment.onCreateDialog(AbstractTaskProgressDialogFragment.java:68) at com.asynctaskbase.AbstractTaskProgressDialogFragment.onCreateDialog(AbstractTaskProgressDialogFragment.java:1) at android.support.v4.app.DialogFragment.getLayoutInflater(DialogFragment.java:295) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:871) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:635) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1431) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:523) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129) at android.app.Activity.performStart(Activity.java:3791) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624) ... 24 more 

Что я делаю неправильно?

Я нашел причину этой проблемы. Я добавил свою FragmentActivities в ActivityGroup, а затем использовал их в TabHost. Когда я нажал кнопку, называемую ProgressDialog, я получил это исключение. Я должен создать его так

 progressDialog = new ProgressDialog(getActivity().getParent()); 

, А не

  progressDialog = new ProgressDialog(getActivity()); 
Intereting Posts
Как разрешить java.net.BindException: сбой связи: EADDRINUSE (адрес уже используется) Не обнаружен тестовый компонент с кинжалом 2 Обнаружение изменений в типе сети (TelephonyManager) в android Почему у меня нет разрешения на запись в приложение dir на внешнем хранилище? Можно ли использовать несколько файлов манифеста для разных градиентных сборок / ароматов? Как передать переменную между Java и C в android JNI? Как установить View alpha в более низком Api, чем 11? Контролировать воспроизведение приложения Spotify из другого приложения для Android? Android скачать pdf от url, затем открыть его с помощью PDF-ридера Android searchView не в действииBar удалить фокус Как использовать OnClickListner в CardView в RecyclerView? Эмулятор андроидов Visual Studio не запустится полностью Как сделать упор на несколько действий Импорт пакетов android не может быть разрешен Как разбирать XML и хранить его на карте с помощью SimpleXML?