NFC前台调度问题的两项活动

时间:2012-05-25 11:08:51

标签: android nfc foreground dispatch

我有两个活动A和B.A总是在B和B使用对话框主题之前开始(这是必需且重要的)。两者都使用NFC前台调度机制,它运作良好。但是,当方向改变时,存在问题。我应该在onResume和onPause方法中启用和禁用前台调度。

会发生什么:

  • 启动,A onResume被称为
  • onPause,B启动,B onResume被调用(一切按预期运行)
  • 方向改变
  • B onPause被调用,B再次启动,B onResume被调用,A再次在后台启动,A onResume被调用,a onPause被调用

- >现在B的前台调度不再起作用了。

B的对话框主题导致了这个问题,因为一切都适用于普通主题。有解决方法吗?

解决方案:

感谢您的评论,但我找到了一个解决方法,这有所帮助。在活动B的onCreate方法中,我执行以下操作:

    /*
     * This workaround is needed as this activity uses the dialog theme. When the background activity uses the foreground
     * dispatch as well, then it breaks this activity's foreground dispatch on an orientation change. 
     */
    mCancelButton.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            NfcForegroundDispatch.setupForegroundDispatch(NfcDetectorActivity.this);
        }
    });

正如我所说,这是一种解决方法而非解决方案。

0 个答案:

没有答案