android - launchMode Activity 的问题

标签 android android-activity launchmode

我正在实现自定义启动器。我有两个 Activity :启动模式为 singleInstance 或 singleTask 的 Activity A,以及 Activity B。

Activity A 是主屏幕。有两种情况:

  • 如果我将 Activity A launchMode 设置为 singleTask,我会从 Activity A 调用 Activity B(没问题)。在 Activity B 中,如果我按 Home 键返回主屏幕,则屏幕为空(没有任何东西......)。
  • 如果我设置 Activity A launchMode : singleInstance,我从 Activity A 调用 Activity B,然后它显示一个空白屏幕,在转到 Activity B 之后(在这种情况下,我按 Home 键回到主屏幕,它工作正常) .

那么,如何解决呢?我想:从 Activity A 调用 Activity B,然后它直接转到 Activity B,当我按 Home 键时,它返回主屏幕(Activity A)。

最佳答案

在 Activity B 中,您可以将以下代码与后退按钮一起使用

@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);
    }

关于android - launchMode Activity 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21083010/

相关文章:

android - Webview 上网页内的 Facebook 登录无法正常工作

android - 子 Activity 能否在父 Activity 保持不变的情况下响应方向变化?

android - launchMode singleTask 中的 Activity 在通过 TaskStackBuilder 启动时被销毁

android - 加载程序在 Activity 启动时重新启动混淆

android - Main Activity 总是第一个启动的 Activity 吗?

android - 了解安卓 :launchMode

android - 具有 singleInstance launchMode 和新线程的 Activity

android - 设置闹钟android

java - Android:FastScrolling SectionIndexer getSections() 只被调用一次

android - Google App Indexing for Android 的 setId 和 getUrl 方法之间的区别?