Подтвердить что ты не робот

Как получить идентификатор Android для Android?

Этот код генерирует исключение "данный поток не существует", когда я пытаюсь использовать его в потоке:

android.os.Process.getThreadPriority((int) Thread.currentThread().getId()));

Тоже, если я пытаюсь использовать Process.setThreadPriority, используя идентификатор потока Java класса. Я также заметил, что это не соответствует идентификатору потока, отображаемому в отладчике. Как получить идентификатор потока конкретных Android для использования этого API?

4b9b3361

Ответ 2

Пока мы работаем с потоками. Мы также хотим регистрировать информацию о потоках для решения проблемы, связанной с потоком. Создайте один класс Utils, как показано ниже, и используйте его для записи подписи потока.

public class Utils 
{
   public static long getThreadId()
   {
      Thread t = Thread.currentThread();
      return t.getId();
   }

   public static String getThreadSignature()
   {
      Thread t = Thread.currentThread();
      long l = t.getId();
      String name = t.getName();
      long p = t.getPriority();
      String gname = t.getThreadGroup().getName();
      return (name 
            + ":(id)" + l 
            + ":(priority)" + p
            + ":(group)" + gname);
   }

   public static void logThreadSignature()
   {
      Log.d("ThreadUtils", getThreadSignature());
   }

   public static void sleepForInSecs(int secs)
   {
      try
      {
         Thread.sleep(secs * 1000);
      }
      catch(InterruptedException x)
      {
         throw new RuntimeException("interrupted",x);
      }
   }

Ссылка: www.androidbook.com