Cambiar la prioridad del hilo no tiene efecto
Estoy tratando de cambiar la prioridad del hilo principal usandoandroid.os.Process.setThreadPriority()
. Tengo mensajes de registro antes y después del cambio de prioridad, aquí está el código:
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());
}
}
Y obtengo el siguiente resultado:
priority before change (getThreadPriority) = 0
priority before change (currentThread().getPriority) = 5
priority after change (getThreadPriority) = 0
priority after change (currentThread().getPriority) = 5
Significa que la prioridad no cambió, sea cual sea el método que use para evaluarla. @android.os.Process.THREAD_PRIORITY_DISPLAY = -4
, así que después de cambiar mi salida debería ser igual a -4, ¿por qué sigue igual? Por quéandroid.os.Process.setThreadPriority()
¿no tiene efecto
PD. Leí documentos de Google sobre hilos, pero no encontré ningún problema que explicara la diferencia entreandroid.os.Process.getThreadPriority()
yThread.currentThread().getPriority()
. ¿Por qué estos métodos devuelven valores diferentes?
P.P.S. @Thread.currentThread().setPriority()
funciona bien