我正在实施自定义启动器。我有两个活动:活动A使用launchMode:singleInstance或singleTask,以及活动B.
活动A是主屏幕。有两种情况:
那么,如何解决这个问题呢?我想:从活动A调用活动B,然后直接转到活动B,当我按下主页键时,它会返回到主屏幕(活动A)。
答案 0 :(得分:1)
,您可以使用以下代码和后退按钮
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent a = new Intent(this,A.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);
return true;
}
return super.onKeyDown(keyCode, event);
}
如果您想使用home键而不是使用以下代码覆盖Home键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
//yours code action
return true;
}
if(keyCode==KeyEvent.KEYCODE_BACK)
{
//yours code action
return true;
}
return super.onKeyDown(keyCode, event);
}
请你也可以试试这个
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if ( (event.getKeyCode() == KeyEvent.KEYCODE_HOME) && isLock) {
//yours code
return true;
}
else
return super.dispatchKeyEvent(event);
}
答案 1 :(得分:0)
尝试这个...... 从清单中删除launchmode属性,然后从活动A调用活动B. 使用finish()方法如下:
finish();
Intent intent=new Intent(getApplicationContext(),ActivityB.class);
startActivity(intent);