2016-10-01 72 views
0

這裏是我的onBackPressed:的Android moveTaskToBack()我重新啓動我的主要活動後不工作

@Override 
public void onBackPressed() { 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    if (drawer.isDrawerOpen(GravityCompat.START)) { 
     drawer.closeDrawer(GravityCompat.START); 
    } else { 
     moveTaskToBack(false); 
    } 
} 

這是在我重新啓動我的主要活動方式:

public void restart() { 
    Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    startActivity(i); 
} 

moveTaskToBack在重新啓動之前工作良好。 但重新啓動後它不再有效。 我該怎麼辦?

+0

請提供活動的完整代碼 –

回答

0

打開片段我找到了解決辦法。 一種方法是替換moveTaskToBack(false);moveTaskToBack(true);。 但這並不能解決問題。 真正的解決方案是添加完成();重新啓動其他活動後,新的活動將成爲根活動。 現在的代碼是這樣的:

public void restart() { 
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(i); 
finish(); 
} 
相關問題