我按后退按钮完成活动。它调用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开始。可能就像我第一次运行它一样。
答案 0 :(得分:1)
这是因为你的申请没有被杀死。它仍将在Android OS内存中。
您可能需要做的是
@Override
public void onBackPressed() {
android.os.Process.killProcess(android.os.Process.myPid());
// This above line close correctly
}