Zaimplementowałem logi i są one wyświetlane na ekranie. Ale nawet po utworzeniu wątku dzienniki nie są dynamicznie aktualizowane na ekranie. Nowe dzienniki należy dołączyć po jednej sekundzie. Gdy użytkownik pozostaje na ekranie, dzienniki powinny być wyświetlane na ekranie, ale tak się nie dzieje. Wątek, który utworzyłem, działa dobrze, ponieważ przetestowałem go ze zmienną count. Ale w przypadku dzienników wydaje się, że nie działa.
Pomóż mi, utknąłem tutaj.
package com.example.logreader;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.text.method.ScrollingMovementMethod;
import android.widget.TextView;
public class MainActivity extends Activity {
private int mInterval = 100; // 5 seconds by default, can be changed later
private Handler mHandler;
int count;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView)findViewById(R.id.textView);
Thread t=new Thread(){
@Override
public void run(){
while(!isInterrupted()){
try {
Thread.sleep(1000); //1000ms = 1 sec
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
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);
}
tv.setText(log.toString());
tv.setMovementMethod(new ScrollingMovementMethod());
} catch (IOException e) {
}
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
t.start();
}
}
1 odpowiedź
Korzystaj z LiveData i obserwabli, które są bardzo potężne, a Twoje życie staje się łatwe
Podobne pytania
Nowe pytania
android
Android to mobilny system operacyjny Google, używany do programowania lub tworzenia urządzeń cyfrowych (smartfony, tablety, samochody, telewizory, Wear, Glass, IoT). W przypadku tematów związanych z Androidem użyj tagów specyficznych dla Androida, takich jak android-intent, android-activity, android-adapter itp. W przypadku pytań innych niż programowanie lub programowanie, ale związanych ze strukturą Androida, użyj tego linku: https: // android.stackexchange.com.