我想构建一个应用程序,可以跟踪用户在某些应用程序上花费多长时间(主要用于概念验证和在其他应用程序中实现.)我知道Lollipop实现了API UsageStatsManager,使您能够跟踪"总长度应用程序在前景中的时间间隔(按天,周,月或年)."
我还读到可以连续轮询AcvtivtyManager,但这会浪费电池寿命并占用CPU和RAM.
我不知道的是,有没有一种有效的方法来跟踪运行Android版本低于Lollipop的设备上的应用程序打开的时间.特别是像Aptrax和App Usage Tracker这样的应用程序以及其他许多应用程序,只需很少或"没有电池消耗(即使在高频跟踪下)".这些应用程序是否使用了另一种方法,在Lollipop之前的设备上获取应用程序使用数据,电池使用量很少,或者调查活动管理器的资源不是因为它们来源我认为引导我相信.
我想制作一个简单的程序,使用 Java.Util.Timer 计算秒数直到 100 下面的代码是我正在使用的代码,但是它只是立即打印所有数字,而无需在每个数字之间等待一秒钟。我该如何解决这个问题?(通常我会使用 thread.sleep 但这只是概念证明。)
import java.util.Timer;
import java.util.TimerTask;
public class Main {
static Timer timer = new Timer();
static int seconds = 0;
public static void main(String[] agrs) {
MyTimer();
}
public static void MyTimer() {
TimerTask task;
task = new TimerTask() {
@Override
public void run() {
while (seconds < 100) {
System.out.println("Seconds = " + seconds);
seconds++;
}
}
};
timer.schedule(task, 0, 1000);
}
}}
Run Code Online (Sandbox Code Playgroud) 我有一个包含edittext的Recyclerview,当在RecyclerView外面按下一个按钮时,我想从RecyclerView中的每个视图中检索文本.但是我似乎无法找到最好的方法.我曾尝试使用回调,并且还尝试过外部类来存储数据,但两种方式看起来都应该有效,但两者都没有多少运气.从每个edittext文件中提取文本的最佳做法是什么,以便它可以添加到数组或数据库中.