'un android.os.Process.setThreadPriority()
kullanarak ana iş parçacığının önceliğini değiştirmeye çalışıyorum. Burada kodu öncesi ve öncelik değişen sonrasında günlük mesajları var:İş parçacığı önceliğinin değiştirilmesi
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());
}
}
Ve şu çıktıyı alıyorum: O öncelik değişmedi anlamına
priority before change (getThreadPriority) = 0
priority before change (currentThread().getPriority) = 5
priority after change (getThreadPriority) = 0
priority after change (currentThread().getPriority) = 5
, ben değerlendirmek için kullandığımız herhangi bir yöntemi o. android.os.Process.THREAD_PRIORITY_DISPLAY = -4
, bu nedenle, çıkışımı değiştirdikten sonra -4 eşit olmalı, neden aynı kalıyor? Neden android.os.Process.setThreadPriority()
'un bir etkisi yok?
P.S. Konuyla ilgili Google dokümanlarını okudum, ancak android.os.Process.getThreadPriority()
ve Thread.currentThread().getPriority()
arasındaki farkı açıklayan herhangi bir sorunla karşılaşmadım. Bu yöntemler neden farklı değerler döndürüyor?
P.P.S. Thread.currentThread().setPriority()
iyi çalışıyor.