在OnBackPressed中使用moveTaskToBack,仍然会破坏Activity

时间:2016-07-15 06:28:52

标签: android

我已经搜索了stackoverflow网站,但遗憾的是所有答案都不适用于我。 由于某些原因,如果后台服务仍然在运行,当用户按“返回”按钮返回主屏幕时,我希望活动不会被销毁。

应用正常工作流程如: 启动画面 - >主要活动

  1. 按下后退按钮,然后重新打开应用程序,工作流程如下: 启动画面 - >主要活动,活动的状态不像回到主屏幕之前(这不是我想要的)

  2. 按下主页按钮,然后重新打开应用程序,工作流程如下: 主要活动,活动状态,如回到主屏幕之前(这就是我想要的)

  3. 知道如何获得2?我知道在2,活动没有被破坏,只是被暂停或停止,但是如何覆盖后退按钮让它像按下主页按钮一样?

    按照某人的想法,在onBackPressed中使用moveTaskToBack,工作流仍然是1。

    以下是我尝试过的代码,

    public class SimpleActivity extends AppCompatActivity{
    .....
    .....
    @Override
    public void onBackPressed() {
        super.onBackPressed();
        moveTaskToBack(true);
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Toast.makeText(this, "onDestroy", Toast.LENGTH_LONG).show();
        if (musicPlayService!=null||serviceBinder)
                unbindService(serviceConnection);
            PlaylistFragment.checkBoxFlag=false;
            unregisterReceiver(detectHeadset);
    
    }
    

2 个答案:

答案 0 :(得分:0)

试试这个:

@Override
public void onBackPressed() {
    Intent i= new Intent(Intent.ACTION_MAIN);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.addCategory(Intent.CATEGORY_HOME);
    startActivity(i);
}

答案 1 :(得分:0)


尝试删除 super.onBackPressed()

NumberFormatException