android - 识别上次使用 android 应用程序的时间

标签 android

我正在开发一个基于实用程序的 android 应用程序,需要知道另一个应用程序的最后使用时间。我能够使用 UsageStatsManager 管理信息,并且它工作正常。

https://developer.android.com/reference/android/app/usage/UsageStatsManager.html

但问题是,它是在 API 21 中添加的,对于旧版本它不起作用。

这就是为什么我需要另一种解决方案来获取 21 之前 API 级别的信息,即 API 8/9 - 20。 是否有任何不同的解决方案来获取信息,例如任何隐藏的日志文件,其中信息由系统或其他东西存储。

最佳答案

我不熟悉适用于 Android < 21 的任何 API,但我看到了一种非常简单的方法。

这涉及到您节省时间。

首先,你需要把握时间:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm dd/MM/yyyy");
String currentDateandTime = sdf.format(new Date());,

然后就可以保存字符串了。

我留给你。您可以使用共享首选项、SQLite、内部存储或外部存储。

至于解析日期:

SimpleDateFormat format = new SimpleDateFormat("HH:mm dd/MM/yyyy");  
try {  
    Date date = format.parse(dtStart);  
    System.out.println(date);  
} catch (ParseException e) {  
    // TODO Auto-generated catch block  
    e.printStackTrace();  
}

并检查this answer用于检查应用程序是否已关闭。

在 API < 21 上,您必须拼凑大量功能才能获得所需的功能。您还必须检查应用程序何时打开以及何时关闭。当应用关闭时,您保存日期。

现在您可以在 Android <21 上检查上次使用应用的时间。

我建议您在 Android < 21 上使用它,并在 Api >= 21 上使用 UsageStatsManager。我建议的方法需要使用一个服务,它会消耗大量电量。您需要这种方式的 API 级别,而不是 UsageStatsManager 的数量在缓慢减少。最终您将能够独占使用 UsageStatsManager。

关于android - 识别上次使用 android 应用程序的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45140601/

相关文章:

java - 底部导航栏 : Text size is increasing on pressing?

android - 使用 super 用户更改另一个应用程序的 SharedPreferences

java - 如何保存一些 TextView 并从另一个类加载它们?

android - strings.xml 与静态常量

android - 随着电话分辨率的提高响应式网页设计

java - 如何在jsoup中提取属性

android - 解析最近 5 分钟内创建的对象的查询

android - Kentico CMS 支持 native iOS 和 Android

android - HCE Android 的 NDEF 消息

android - JPEG 文件似乎很大 : OutOfMemoryError