【问题标题】:add a view using the broadcast receiver to the top activity which is running currently?使用广播接收器将视图添加到当前正在运行的顶级活动?
【发布时间】:2011-09-09 17:28:10
【问题描述】:

我可以在广播接收器的顶部活动中添加一个视图吗?

ActivityManager am = (ActivityManager) mContext
                            .getSystemService(Context.ACTIVITY_SERVICE);
        List<RunningTaskInfo> taskInfo = am.getRunningTasks(1);
        ComponentName componentInfo = taskInfo.get(0).topActivity;

componentInfo.getClassName() 返回正在运行的顶级活动的类名。我也可以得到包名。我可以在当前的热门活动上添加视图或一些动画吗?在大多数情况下,我需要布局名称来绑定它,但我不知道该怎么做。

【问题讨论】:

    标签: android layout android-activity broadcastreceiver


    【解决方案1】:

    你不能这样做,如果你这样做,那将是一个相当大的安全问题。但是,您可能能够在它之上开始一个新的活动并且不覆盖整个屏幕?你最终想要完成什么?

    【讨论】:

    • 你看过 thrutu 应用程序吗?我已经安装了 android 应用程序,然后当您在通话时有一个滑动抽屉,其中有一些选项。我怎样才能有一个不覆盖整个屏幕的活动?
    • 不,我还没有看到 thrutu。如果我不得不猜测,我会说他们正在取代整个通话活动。要让活动不覆盖整个屏幕,只需将数值设置为顶部布局的 layout_width 和 layout_height 属性。
    • 不,它们不会在通话屏幕活动中替换。 thrutu 的滑动抽屉就在它的顶部,thrutu 抽屉以及它部分覆盖的通话屏幕活动都处于活动状态。基本上当 thrutu 抽屉在顶部时,我仍然可以访问通话中的按钮屏幕。
    • 所以我第一次就做对了?解决方案不是向外部活动添加视图(无论如何这应该是不可能的),而是在其上显示部分覆盖它的活动。对吗?
    • 是的,但是两个activity需要同时激活。部分的和它下面的。
    【解决方案2】:

    好的。我想通了 。我在后台启动了一项服务,然后我得到了 WindowManager,然后膨胀了要添加的视图。然后我使用了 windowmanager.addView(inflatedView) 。

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多