0
private void getForegroundActivity() {
String packageName = "";
String className = "";
Calendar cal_begin = Calendar.getInstance();
cal_begin.set(Calendar.YEAR, -1);
long _begTime = cal_begin.getTimeInMillis();
long _endTime = System.currentTimeMillis();
UsageStatsManager usageStatsManager = (UsageStatsManager) this.getSystemService(Context.USAGE_STATS_SERVICE);
if (usageStatsManager != null) {
UsageEvents queryEvents = usageStatsManager.queryEvents(_begTime, _endTime);
if (queryEvents != null) {
UsageEvents.Event event = new UsageEvents.Event();
while (queryEvents.hasNextEvent()) {
UsageEvents.Event eventAux = new UsageEvents.Event();
queryEvents.getNextEvent(eventAux);
if (eventAux.getEventType() == UsageEvents.Event.MOVE_TO_FOREGROUND) {
event = eventAux;
}
}
packageName = event.getPackageName();
className = event.getClassName();
}
上記のコードは正常に動作し、適切なフォアグラウンド活動を与えるが、いくつかの時間後(のは2〜3時間後に言わせて)、「queryEvents(_begTime, _endTime)
」戻り値 『0』(ゼロ)をカウント!!
usageStatsManager.queryEvents()
をサービスに使用する他の方法はありますか?
他のポインタ、アイデアは高く評価されています。
を返信していただきありがとうございますが。私はqueryEvents()が数日間しかないことを知りませんでした。これについてどうお知りになりましたか? – user3132107
私の更新された回答をチェックアウトしてください。 –