我的Android应用程序有问题,我正在使用Android STUDIO IDE进行开发。 当我将应用程序在后台留下几分钟,或者被系统杀死或者我混合了片段的不同布局时。 我在下面放了一张照片:
我已经尝试过各种各样的方法,如果你还有别人写的话。提前谢谢。
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tl = new ActionBar.TabListener() {
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
pager.setCurrentItem(tab.getPosition());
actionBar.setSelectedNavigationItem(tab.getPosition());
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
};
String label1 = getResources().getString(R.string.label1);
ActionBar.Tab tab;
tab = actionBar.newTab();
tab.setText(label1);
tab.setIcon(R.drawable.download);
//tab.setIcon(R.drawable.data);
tab.setTabListener(tl);
actionBar.addTab(tab);
String label2 = getResources().getString(R.string.label2);
tab = actionBar.newTab();
tab.setText(label2);
tab.setIcon(R.drawable.search);
tab.setTabListener(tl);
actionBar.addTab(tab);
String label3 = getResources().getString(R.string.label3);
tab = actionBar.newTab();
tab.setText(label3);
tab.setIcon(R.drawable.television);
tab.setTabListener(tl);
actionBar.addTab(tab);
图片:
答案 0 :(得分:2)
所以问题是你的onCreate中添加了片段A.导航到片段B后,您的活动将进入后台。在某些情况下,如你所知,android可以杀死你的后台活动并强制它在前台时重新创建。因此,您的活动使用片段B重新创建自己,片段B是进入后台时的最后状态,并且因为onCreate被调用而添加片段A.您可以通过在onCreate中执行savedinstancestate检查来解决此问题。