使用onStop解除绑定服务

时间:2015-04-16 03:35:44

标签: android android-activity android-lifecycle

我有一个Activity我希望在不调用onDestroy()的情况下关闭它。所以我使用onStop();看起来像

@Override
    public void onStop(){
        super.onStop();
        try{
            unbindService(mServerConn);
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }

我运行代码,但活动仍在屏幕上显示

你可以帮我隐藏它吗? 谢谢!

4 个答案:

答案 0 :(得分:2)

在这种情况下,onStop()的使用不正确。如果您需要关闭活动,请使用finish()

Intent openStartingPoint = new Intent(this, MainActivity.class);
openStartingPoint.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(openStartingPoint);
finish();

这应该可以正常工作。

答案 1 :(得分:1)

你不应该致电onStop(),但你可以这样做:

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

这将调用onStop()并引导您进入主屏幕。

答案 2 :(得分:1)

  当您的活动不可见时,将会调用

onStop()   前景给用户。

     

因此,如果您的活动当前对用户可见,则意味着   尚未从 Android Framework

调用onStop()

你的方法是正确的。您正好onStop()中的服务取消绑定,这是正确的方法。

我认为您的应用程序运行正确,无需修改

由于

答案 3 :(得分:0)

使用System.exit(0);关闭它而不调用onDestroy().