我想阻止活动完成。我知道我必须覆盖onBackPressed和remover super.onBackpressed。并做我的编码。知道我想知道我应该在onBackpressed中写什么不删除它但是把它放在后台。我在下面找到了一个解决方案。
@Override
public void onBackPressed() {
moveTaskToBack(true);
return;
}
但它将关闭应用程序并像主页按钮一样运行。但我想转到我之前来自的活动。我需要的一件主要事情是......我有一个按钮可以从任何应该仍然离开的地方打开这个特定的活动。因为它是一个带有搜索栏的AudiopLAYER ..从哪里我称之为..它应该显示其当前的进展。我的意思是我需要一种隐藏背景活动的方法。从我称之为的任何活动。它应该从堆栈调用。我不想打开它的新实例.. 通过谷歌搜索,我有一个想法,但不知道如何实现它..
@覆盖 public void onBackPressed(){
//super.onBackPressed();
Intent backIntent = new Intent(this, SongsList.class);
backIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(backIntent);
}
与此相关的问题是here。
我想这样做,但是应该从任何其他活动中看出来。
我找到了backPressed的解决方案,但我怎么能把它改成我的需要..
@Override
public void onBackPressed() {
Log.d("CDA", "onBackPressed Called");
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
}
答案 0 :(得分:1)
@Override
public void onBackPressed() {
Intent backIntent = new Intent(this, AudioPlayer.class);
startActivity(backIntent);
}
试试这个.. 这将调用您的新活动,但不会关闭当前的活动。
但它会存储在一个堆栈中。如果您不需要历史记录
noHistory = true
你的android清单中的
答案 1 :(得分:0)
Ciril的答案在某种程度上是正确的。因为通过覆盖onBackPressed,我们回到之前的活动而没有完成它。但它不是最终的,如果android需要资源,它可以删除它。我没有办法避免删除它。但我的应用程序工作正常。主要的是调用可能在堆栈中的Activity并打开特定的活动是必须的。
从堆栈打开活动并将其重新排序到堆栈顶部的代码是..
Intent intent = new Intent(Album.this, StaticAudioPlayer.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);// this flag reorder the activity to top
startActivity(intent);