我对以下场景中处理程序的使用存在疑问
我有一个活动类如下:
public class MyActivity extends Activity {
...
...
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
...
}
}
和BluetoothClientConnection类如下
public class BTClientConnection extends Thread {
public void run {
...
}
}
现在我想使用处理程序更新UI。我应该怎么做?我应该创建一个公共处理程序变量并直接从我的BluetoothClientConnection代码引用它吗?这是最佳实践,因为我将直接与MyActivity类耦合。
来自Gennadii Saprykin的答案应该是最终的代码
public class MyActivity extends Activity {
...
private ActivityHandler activityhandler = new ActivityHandler();
static class ActivityHandler extends Handler {
@Override
public void handleMessage(Message msg) {
}
...
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
...
BTClientConnection btClientConnection = new BTClientConnection(..);
btClientConnection.start();
}
}
public class BTClientConnection extends Thread {
private static final Handler UI_HANDLER = new Handler(Looper.getMainLooper());
public void run {
Message message = new Message();
UI_HANDLER.sendMessage(message);
}
}
答案 0 :(得分:0)
以这种方式在您的背景int(math.sqrt(num))+ 1)
内创建用户界面i = 2
n = int(math.sqrt(num))+ 1)
while i < n:
if num % i == 0:
return False
i += 1
return True
:
Handler
然后您可以Thread
消息或private static final Handler UI_HANDLER = new Handler(Looper.getMainLooper());
send
到UI线程。要处理活动中的消息,您可以在活动中创建另一个处理程序,并覆盖post
方法,如下所示:
Runnable