android.os.Process.setThreadPriority()
を使用してメインスレッドの優先度を変更しようとしています。私は、優先度変更前と後のログメッセージを持って、ここのコードです:スレッドの優先度を変更しても効果がありません
public class TestActivity extends Activity {
public final String TAG="TestActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int tid=(int)Thread.currentThread().getId();
Log.d(TAG,"priority before change = " + android.os.Process.getThreadPriority(tid));
Log.d(TAG,"priority before change = "+Thread.currentThread().getPriority());
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_DISPLAY);
Log.d(TAG,"priority after change = " + android.os.Process.getThreadPriority(tid));
Log.d(TAG,"priority after change = " + Thread.currentThread().getPriority());
}
}
は、私は次の出力を得る:
priority before change (getThreadPriority) = 0
priority before change (currentThread().getPriority) = 5
priority after change (getThreadPriority) = 0
priority after change (currentThread().getPriority) = 5
をそれは私が評価するために使用どんな方法、優先順位が変更されていないことを意味しそれ。 android.os.Process.THREAD_PRIORITY_DISPLAY = -4
だから、私の出力を変更した後は-4になります。なぜandroid.os.Process.setThreadPriority()
に効果がないのですか?
P.S.スレッドに関するGoogleドキュメントを読んでいますが、android.os.Process.getThreadPriority()
とThread.currentThread().getPriority()
の違いを説明する問題は出ませんでした。これらのメソッドが異なる値を返す理由
P.P.S. Thread.currentThread().setPriority()
は問題なく動作します。