我在Activity
中创建了一个嵌套类public class MissionsActivity extends Activity {
class UpdateMissions implements Runnable {
@Override
public void run() {
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);
[...]
}
[...]
}
在线程中,我必须读取文件并更新布局中的一些TextFields
。我尝试使用run()
方法实现while(true)
方法来读取和更新字段,但是当我启动Activity
时,应用只会崩溃。
更新:我在UI活动的execute()
方法中调用了onCreate()
方法。任务仅在我第一次进入活动时工作,如果我改变并返回它将不会做任何事情。
答案 0 :(得分:0)
嘿,解决方案可能是尝试使用Java的Executor Framework。将以下代码放在Activity中。
使用执行者,您可以使用cachedThreadPool()
singleThreadExecutor()
fixedThreadPoolExecutor(int numOfThreads)
等。
Executors.newSingleThreadExecutor().submit(new Runnable() {
@Override
public void run() {
//Your task here.
}
});
请注意Android中有许多线程模型和技术,一些Android特定,一些基于Android。
答案 1 :(得分:0)
您可以使用AsyncTask。它允许您加载文件并在ui线程上显示进度,直到加载完成为止。
这里有一个很好的例子Download a file with Android, and showing the progress in a ProgressDialog
如果您在开发方面更先进,我会建议使用RxJava或实时数据,但第一个解决方案也足够开始 https://developer.android.com/topic/libraries/architecture/livedata.html