在ondestroy之后的Android,仍然可以看到应用程序

时间:2016-06-02 09:02:03

标签: android ondestroy

我按后退按钮完成活动。它调用ondestroy。然后回家。但是,在我可以在android studio中看到之后,它仍然是活跃的。

我看

Android monitor

monitors标签。

free 3
allocated 27 mb

我的ondestroy和backbutton代码:

public void onBackPressed() {
        Log.d(TAG, "mainactivitymp3 backbuttpn");

        final Context ctx = this;
        AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
        builder.setCancelable(true);
        builder.setTitle("end app?");
        //builder.setMessage("yes?");
        builder.setPositiveButton("yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {

                Intent intent = new Intent(Intent.ACTION_MAIN);
                intent.addCategory(Intent.CATEGORY_HOME);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
                finish();
            }
        });
        builder.setNegativeButton("no", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                return;
            }
        });
        builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
            public void onCancel(DialogInterface dialog) {
                return;
            }
        });
        builder.show();
    }

    @Override
    protected void onDestroy() {
        Log.d(TAG, "mainactivityondestry");
        super.onDestroy();

        if(mMediaPlayer!=null ) {
            Log.d(TAG, "mainactivityondestry mediaisplay not null");
            mMediaPlayer.release();
        }
        else{
            Log.d(TAG, "mainactivityonondestry mediaisplayisplaying"+mMediaPlayer.isPlaying());
        }
    }

    @Override
    protected void onStop() {
        Log.d(TAG, "mainactivityonstop");
        super.onStop();

        if(mMediaPlayer!=null ) {
            Log.d(TAG, "mainactivityonstop mediaisplay not null");
            mMediaPlayer.stop();
          //  mMediaPlayer.release();//i usethis ondestroy
        }
        else{
            Log.d(TAG, "mainactivityonstop mediaisplayisplaying"+mMediaPlayer.isPlaying());
        }
    }

我有三星平板电脑。当我按下家附近的左按钮时,它显示我最近使用的应用程序或仍保留的内存。我不知道哪个是真的。

至少过了20分钟,但我仍然可以看到我在那里的活动。

那些是日志:( 20分钟后,我回家后,没有记录我的标签,但是为了详细,它一直在继续)

mainactivitymp3 backbuttpn
mainactivityonpause***********
mainactivityonpause mediaisplay not null isplaying
mainactivityonpause ends***********
mainactivityonstop
mainactivityonstop mediaisplay not null
mainactivityondestry
mainactivityondestry mediaisplay not null

当我从平板电脑按钮菜单中选择我的应用时,它从oncreate开始。可能就像我第一次运行它一样。

1 个答案:

答案 0 :(得分:1)

这是因为你的申请没有被杀死。它仍将在Android OS内存中。

您可能需要做的是

@Override 
public void onBackPressed() { 

    android.os.Process.killProcess(android.os.Process.myPid());
    // This above line close correctly 
}