0

我正在编写一个 Android 库,我想在其中跟踪用户启动应用程序时、进入后台时、变为活动时等事件。我想考虑关闭屏幕,就像应用程序进入后台一样。目前,我正在编写一个服务来实现它,它每隔几秒检查一次主活动状态。我真的不喜欢这种投票方式。是否可以在应用程序更改状态时从应用程序获取某种通知。需要明确的是,由于这是库,因此它无法访问应用程序的主要活动生命周期方法。我希望我的图书馆检测到应用程序可见性的变化。想知道是否有比粘性服务更好的方法来做到这一点?

提前致谢 !

4

2 回答 2

0

实现此目的的方法之一是跟踪服务中的 logcat。您的后台服务可能正在监视 logcat 以查看应用程序启动事件和其他事件。

要以编程方式阅读日志,您可以执行以下操作

      Process process = Runtime.getRuntime().exec("logcat -d");
      BufferedReader bufferedReader = new BufferedReader(
      new InputStreamReader(process.getInputStream()));

      StringBuilder log=new StringBuilder();
      String line = "";
      while ((line = bufferedReader.readLine()) != null) {
      log.append(line);
于 2013-07-19T15:36:44.720 回答
0

如果您愿意将自己限制在 API 级别 14+,您可以调用单例以通知其他对象中的这些活动生命周期事件registerActivityLifecycleCallbacks()Application除此之外,没有您可以独立检测到的“应用程序更改状态时的通知”。

于 2013-07-19T22:29:28.880 回答