を使用してメインスレッドの優先度を変更しようとしてい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()
効果がないのですか?
android.os.Process.getThreadPriority()
PS スレッドに関する Google ドキュメントを読みましたが、との違いを説明する問題に遭遇しませんでしたThread.currentThread().getPriority()
。これらのメソッドが異なる値を返すのはなぜですか?
PPSThread.currentThread().setPriority()
は正常に動作します。