private String ReadCPUMhz()
{
ProcessBuilder cmd;
String result="";
int resultshow = 0;
try{
String[] args = {"/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"};
cmd = new ProcessBuilder(args);
Process process = cmd.start();
InputStream in = process.getInputStream();
byte[] re = new byte[1024];
while(in.read(re) != -1)
{
result = result + new String(re);
}
in.close();
} catch(IOException ex){
ex.printStackTrace();
}
return result;
}
我使用 setText 将结果中的值写入 textView。 所以它在应用程序启动时读取当前的 cpu 频率并将其写入此 textView。该应用程序显示 f.e.整个应用程序打开时为 1200Mhz。它没有更新值。
如何使用Timer或其他方法在1s或250ms后更新当前值并将其写入textView? 它应该显示当前的 CPU 频率。 F.e.: 300Mhz - 1200Mhz.. 1s 或 250ms 后更新..
请帮助我:-)
最好的问候
马库斯
最佳答案
尝试使用 runOnUiThread用于从 Thread 更新 Textview 为:
public void myThread(){
Thread th=new Thread(){
@Override
public void run(){
try
{
while(true)
{
Thread.sleep(100L); //SET INTERVAL TO UPDATE TEXTVIEW TEXT
Activity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
String str=ReadCPUMhz(); //CALL YOUR METHOD HERE
tvnn.setText(str); SET TEXT HERE
});
}
}catch (InterruptedException e) {
// TODO: handle exception
}
}
};
th.start();
}
//....YOUR CODE
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myThread();
//YOUR CODE..
关于android - 在 textView 上更新 CPU 频率(howto?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284448/