【问题标题】:Do something (prompt) or something before an app launch android在应用程序启动之前做某事(提示)或某事
【发布时间】:2014-03-27 07:10:13
【问题描述】:

有没有办法在设备上启动任何 Android 应用程序时进行监听或获得通知?并在设备上启动应用程序时做些什么?

编辑:某事——我的意思是——显示一个警告对话框或类似的东西?

【问题讨论】:

    标签: android


    【解决方案1】:

    这表示不可能 https://stackoverflow.com/a/8293788/472336

    但我认为您可以寻找 Launcher 类型的应用,这些应用可以做到这一点,这是教程

    http://arnab.ch/blog/2013/08/how-to-write-custom-launcher-app-in-android/

    【讨论】:

    • 谢谢伙计。这就是我害怕的。我知道如何在设备上自定义启动任何应用程序,并且知道如何让应用程序在后台运行。我在想的是一种直接的方式来获得通知,如果应用程序启动,然后在那里显示警报排序?
    【解决方案2】:

    没有应用启动事件。 您可以轮询当前的热门活动,并在检测到它已更改时执行操作:

    ActivityManager sysActivitySvc = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
    String topActivity = sysActivitySvc.getRunningTasks(1).get(0).topActivity.getPackageName();
    if(!topActivity.equals(lastTopActivity))
    {
      lastTopActivity = topActivity;
      //Do your stuff here
    }
    

    请注意,轮询可能会影响电池使用情况。每秒轮询最高活动的次数不要超过一次或两次。 此外,您需要注意您的服务保持活动状态(Android 非常喜欢杀死服务)。

    【讨论】:

    • 感谢 velis 的帮助,我可以执行自己的自定义操作吗?例如警报,即使我在后台保持服务处于活动状态并发现顶部活动发生了变化?
    • 是的,如果您愿意,服务可以显示 Toast 或启动自定义活动/应用程序。
    • 谢谢我接受你的回答,因为没有其他合适的事件可以解决这个问题,这是一个快速解决方案。感谢所有的帮助。谢谢!
    猜你喜欢
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 2013-03-03
    相关资源
    最近更新 更多