Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
Android 不确定它是否在自己的线程上运行_Android_Android Service - Fatal编程技术网

Android 不确定它是否在自己的线程上运行

Android 不确定它是否在自己的线程上运行,android,android-service,Android,Android Service,我不确定我的服务是否在自己的线程上运行 我在我的服务中的onCreate方法中执行此操作: @Override public void onCreate() { HandlerThread thread = new HandlerThread("ServiceStartArguments"); thread.start(); } 我可以在调试时看到正在创建的线程,但我仍然不确定,因为我看到人们会这样做: handler=new Handler(); Runnable r=new

我不确定我的服务是否在自己的线程上运行

我在我的服务中的onCreate方法中执行此操作:

@Override
public void onCreate() {
    HandlerThread thread = new HandlerThread("ServiceStartArguments");
    thread.start();
}
我可以在调试时看到正在创建的线程,但我仍然不确定,因为我看到人们会这样做:

handler=new Handler();
Runnable r=new Runnable()
{
   public void run() 
   {
       tv.append("Hello World");            
   }
};
handler.postDelayed(r, 1000);
怎么,怎么?请解释一下,我不明白

这也让我感到困惑

I/Choreographer﹕ Skipped 52 frames!  The application may be doing too much work on its main thread.

HandlerThread的run()方法中执行的任何操作都是在onCreate()中以thread.start()开头的线程上运行的。默认情况下,服务中的任何其他内容都在UI线程上运行(除非您使用的是IntentService,否则onHandleIntent()将自动在非UI线程中运行)


您发布的模式可能正在演示如何从不同的线程更新UI线程上的UI。

在HandlerThread的run()方法中执行的任何操作都将在onCreate()中的thread.start()开始的线程上运行。默认情况下,服务中的任何其他内容都在UI线程上运行(除非您使用的是IntentService,否则onHandleIntent()将自动在非UI线程中运行)


您发布的模式可能正在演示如何从不同的线程更新UI线程上的UI。

在HandlerThread的run()方法中执行的任何操作都将在onCreate()中的thread.start()开始的线程上运行。默认情况下,服务中的任何其他内容都在UI线程上运行(除非您使用的是IntentService,否则onHandleIntent()将自动在非UI线程中运行)


您发布的模式可能正在演示如何从不同的线程更新UI线程上的UI。

在HandlerThread的run()方法中执行的任何操作都将在onCreate()中的thread.start()开始的线程上运行。默认情况下,服务中的任何其他内容都在UI线程上运行(除非您使用的是IntentService,否则onHandleIntent()将自动在非UI线程中运行)


您发布的模式可能正在演示如何从其他线程更新UI线程上的UI。

使用此模式检查线程id:

long myThreadId = Thread.currentThread().getId();
Log.d("thread debuging", "Thread id is: " + myThreadId);
或者,您也可以使用这些设置线程的名称:

Thread.currentThread().setName("A_NAME_FOR_THIS_THREAD");
String threadName = Thread.currentThread().getName();

使用此选项检查线程的id:

long myThreadId = Thread.currentThread().getId();
Log.d("thread debuging", "Thread id is: " + myThreadId);
或者,您也可以使用这些设置线程的名称:

Thread.currentThread().setName("A_NAME_FOR_THIS_THREAD");
String threadName = Thread.currentThread().getName();

使用此选项检查线程的id:

long myThreadId = Thread.currentThread().getId();
Log.d("thread debuging", "Thread id is: " + myThreadId);
或者,您也可以使用这些设置线程的名称:

Thread.currentThread().setName("A_NAME_FOR_THIS_THREAD");
String threadName = Thread.currentThread().getName();

使用此选项检查线程的id:

long myThreadId = Thread.currentThread().getId();
Log.d("thread debuging", "Thread id is: " + myThreadId);
或者,您也可以使用这些设置线程的名称:

Thread.currentThread().setName("A_NAME_FOR_THIS_THREAD");
String threadName = Thread.currentThread().getName();

您已经完成了第3步中的两个步骤,现在使用thread.getLooper()参数创建一个新的Handker OK,谢谢。我如何判断服务正在该线程上运行@pskinkservice始终在ui线程中运行(相同的线程活动在其上运行),但您可以生成一些其他线程以生成长后台作业。您已经完成了第3步中的两个步骤,现在使用thread.getLooper()参数创建一个新的Handker。谢谢。我如何判断服务正在该线程上运行@pskinkservice始终在ui线程中运行(相同的线程活动在其上运行),但您可以生成一些其他线程以生成长后台作业。您已经完成了第3步中的两个步骤,现在使用thread.getLooper()参数创建一个新的Handker。谢谢。我如何判断服务正在该线程上运行@pskinkservice始终在ui线程中运行(相同的线程活动在其上运行),但您可以生成一些其他线程以生成长后台作业。您已经完成了第3步中的两个步骤,现在使用thread.getLooper()参数创建一个新的Handker。谢谢。我如何判断服务正在该线程上运行@pskinkservice始终在ui线程中运行(相同的线程活动在其上运行),但您可以生成一些其他线程来生成长后台作业。因此,我必须在run()方法中放入像音乐播放器一样运行一段时间的代码,以便稍后将其与ui分离?Thread.start()只是线程的一个启动?Thread.start()启动一个新的执行线程,并在新线程上调用run()。因此,我以后必须在run()方法中放入像音乐播放器一样运行一段时间的代码,以将其与UI分离?Thread.start()只是线程的一个启动?Thread.start()启动一个新的执行线程,并在新线程上调用run()。因此,我以后必须在run()方法中放入像音乐播放器一样运行一段时间的代码,以将其与UI分离?Thread.start()只是线程的一个启动?Thread.start()启动一个新的执行线程,并在新线程上调用run()。因此,我以后必须在run()方法中放入像音乐播放器一样运行一段时间的代码,以将其与UI分离?Thread.start()只是线程的启动?Thread.start()启动一个新的执行线程,并在新线程上调用run()。