ひとまず、getAllStackTracesを使用してTID
が取得できないかとかくにんしてみました。
★箇所でブレイクを張ってthreadを確認してみたのですが
TIDらしいものが見つからず、 thread.getId();で取得した値も
DDMS上にみられるTIDでもIDでもありませんでした・・・。
ただ、thread.setPriority()で優先度は設定変更可能のようなのですが、
このパラメータである優先度の範囲は 優先度低:1~10:優先度高
android.os.Process.setThreadPriority()で指定できる範囲は下記のような記載があり、
優先度低:19~-20:優先度高であると思うのですが、
priority | A Linux priority level, from -20 for highest scheduling priority to 19 for lowest scheduling priority |
---|
スレッドとひとくくりに言ってもUIスレッドで優先度の設定などは異なるのでしょうか
Map<Thread, StackTraceElement[]> maps = Thread.getAllStackTraces();
Iterator<Entry<Thread, StackTraceElement[]>> itr = maps.entrySet().iterator();
while(itr.hasNext()){
Map.Entry entry = (Entry) itr.next();
Thread thread = (Thread) entry.getKey();
if(thread.getName().equals("スレッド名")){
long id = thread.getId();★
int pri = thread.getPriority();
thread.setPriority(Thread.MAX_PRIORITY);
break;
}