Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java在android中创建简单线程?_Java_Android_Multithreading - Fatal编程技术网

用java在android中创建简单线程?

用java在android中创建简单线程?,java,android,multithreading,Java,Android,Multithreading,我有一个简单的android brick breaker游戏,目前只运行一个线程。我的任务是将游戏设计成包含多线程的,但我很难找到一个足够简单的教程来指导我。目前我已经让游戏运行得很顺利,它有MainActivity、GameView、GameLogic和SpriteObject类,正如你从它们的名字中所期望的那样。我将如何以及在哪里实现另一个线程,目前它只是每隔一段时间增加一个外部变量,比如“timer” 请记住,我一直在努力让我的头周围线程,所以你可能不得不相当光顾我得到它 谢谢所以,如果只

我有一个简单的android brick breaker游戏,目前只运行一个线程。我的任务是将游戏设计成包含多线程的,但我很难找到一个足够简单的教程来指导我。目前我已经让游戏运行得很顺利,它有MainActivity、GameView、GameLogic和SpriteObject类,正如你从它们的名字中所期望的那样。我将如何以及在哪里实现另一个线程,目前它只是每隔一段时间增加一个外部变量,比如“timer”

请记住,我一直在努力让我的头周围线程,所以你可能不得不相当光顾我得到它


谢谢

所以,如果只是周期性地做一些事情,只需使用调度程序/计时器,无需创建新线程

import java.util.concurrent.ScheduledFuture;

private void startUpdateTimer(){
final Runnable updater = new Runnable() {
    @Override
    public void run() {
        try {
            updateTheActualVariable(); 
        } catch (Exception ex) {
            Log.e("error in getting updates", ex.getMessage());
        }
    }
};
final ScheduledFuture updaterHandle = sheduler.scheduleAtFixedRate(updater, 0, Constants.GET_UPDATES_PERIOD, TimeUnit.SECONDS);
}
在这里阅读更多

您还可以使用旧的java计时器

Android有一个名为AsyncTask的类,非常漂亮:)

只需创建一个类来扩展它,如下所示:

    public class myTask extends AsyncTask<Object, Object, Object> {

    @Override
    protected Object doInBackground(Object... arg0) {
                //Increase timer and wait here in a loop
        return null;
    }

    protected void onPostExecute(Object result) {
        //Something you want to do when done?

    };



}
该部分是要执行的参数的类类型、可用于更新可视进度的对象的类类型以及doInBackground返回和onPostExecute分别获取的值

如需指南,请点击此处:


和文档:

您忘了提到共享变量必须是
volatile
或某个原子变量。
new myTask().execute(INPUT or null);