【问题标题】:How to get the foreground activity instance?如何获取前台活动实例?
【发布时间】:2013-05-28 03:17:51
【问题描述】:

我想创建一个服务应用程序,将屏幕触摸事件及时发送到前台活动。前台活动可能是一个 3pp 应用程序。

我的代码:

public void myClickEvent(float x, float y) {
    long firstTime = SystemClock.uptimeMillis();
    final MotionEvent firstEvent = MotionEvent.obtain(firstTime, firstTime,
            MotionEvent.ACTION_DOWN, x, y, 0);

    long secondTime = firstTime + 100;
    final MotionEvent secondEvent = MotionEvent.obtain(secondTime,
            secondTime, MotionEvent.ACTION_UP, x, y, 0);

    dispatchTouchEvent(firstEvent);
    dispatchTouchEvent(secondEvent);
}

但是 Service 没有 dispatchTouchEvent() 就像 Activity 一样。 唯一的方法是在我的服务中获取前台活动实例。 怎么做? 非常感谢您的建议。

【问题讨论】:

    标签: android android-activity foreground


    【解决方案1】:

    您可以: 1. 在你的活动 A 中捕捉事件。 2. 向活动B发送数据。可以使用BroadcastReceiver。

    如果您需要跨应用程序发送广播: http://developer.android.com/reference/android/content/BroadcastReceiver.html

    【讨论】:

    • 其实运行前台的activityA不是我自己创建的。它可能是我无法修改的任何应用程序,例如设置、游戏等。我唯一知道的是活动 A 可以处理屏幕触摸事件,但我怎么知道活动 B 中的当前活动 A 是什么?
    猜你喜欢
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2019-12-29
    • 1970-01-01
    相关资源
    最近更新 更多