窗口管理器动画器状态和活动后台堆栈

时间:2017-12-09 10:30:51

标签: android android-activity android-dialogfragment android-dialog android-windowmanager

我想知道这两者是否相关。

我在另一个活动的顶部显示对话框时遇到问题。 我认为我做的是:

  • 开始打电话的活动,
  • 侦听BroadcastReceiver
  • Intent.ACTION_NEW_OUTGOING_CALL启动活动(带Intent.FLAG_ACTIVITY_NEW_TASK标志),该活动将显示对话框(让我们称之为InCallActivity),
  • 位于onCreate的{​​{1}}我构建了一个InCallActivity然后显示它。

我看到的只是DialogFragment而没有我的对话。

com.android.dialer/com.android.incallui.InCallActivity

dumpsys window animator

Window #0: WindowStateAnimator{42433660 com.android.systemui.ImageWallpaper} Window #1: WindowStateAnimator{428f9a20 com.google.android.googlequicksearchbox/com.google.android.launcher.GEL} Window #2: WindowStateAnimator{4287ae60 com.android.settings/com.android.settings.DevelopmentSettings} Window #3: WindowStateAnimator{42800678 com.android.settings/com.sprd.settings.SprdUsbSettings} Window #4: WindowStateAnimator{428939d8 myApp/myApp.MainActivity} Window #5: WindowStateAnimator{42835be0 myApp/myApp.InCallActivity} <- that's probably the activity itself Window #6: WindowStateAnimator{4283f518 myApp/myApp.InCallActivity} <- that's probably the dialog Window #7: WindowStateAnimator{4282de98 com.android.dialer/com.android.incallui.InCallActivity} Window #8: WindowStateAnimator{426e5cb0 InputMethod} Window #9: WindowStateAnimator{424e09b8 KeyguardScrim} Window #10: WindowStateAnimator{424dd0a8 Keyguard} Window #11: WindowStateAnimator{422c4598 StatusBar} 始终位于任务堆栈之上

android.task.incallui

如何在Running activities (most recent first): TaskRecord{427a9cf8 #745 A=android.task.incallui U=0 sz=1} Run #4: ActivityRecord{423c18e8 u0 com.android.dialer/com.android.incallui.InCallActivity t745} TaskRecord{427d0768 #744 A=myApp U=0 sz=1} Run #3: ActivityRecord{42373f28 u0 myApp/.InCallActivity t744} TaskRecord{424b8170 #743 A=myApp U=0 sz=2} Run #2: ActivityRecord{422f0fb0 u0 myApp/.MainActivity t743} TaskRecord{4289c550 #657 A=com.sprd.settings.SprdUsbSettings U=0 sz=1} Run #1: ActivityRecord{41ac4b30 u0 com.android.settings/com.sprd.settings.SprdUsbSettings t657} TaskRecord{42778c78 #522 A=com.android.settings U=0 sz=1} Run #0: ActivityRecord{41a8a0b0 u0 com.android.settings/.DevelopmentSettings t522} mResumedActivity: ActivityRecord{423c18e8 u0 com.android.dialer/com.android.incallui.InCallActivity t745} mLastPausedActivity: ActivityRecord{42373f28 u0 myApp/.InCallActivity t744}

之上显示该对话框

1 个答案:

答案 0 :(得分:0)

好吧,我找到了解决方法。 我没有将活动显示为对话框(或活动中的对话框),而是运行一个服务,该服务使用LayoutParams显示小部件(添加新视图),例如TYPE_SYSTEM_ALERT。