我的代码中有一个thread.sleep和一个处理程序postDelayed:
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.e(TAG, "I ran");
mIsDisconnect = false;
}
}, DISCONNECT_DELAY);
Run Code Online (Sandbox Code Playgroud)
处理程序代码之后和用户按下按钮之后我有:
while (mIsDisconnect) {
try {
Thread.sleep(DELAY);
} catch (InterruptedException e) {
Log.e(TAG, "problem sleeping");
}
}
Run Code Online (Sandbox Code Playgroud)
如果用户等待足够长时间,我可以在我的日志中获得"我跑".但是如果用户在延迟结束之前按下按钮,则似乎postDelayed永远不会有机会执行.我的问题是,thread.sleep()是否与处理程序postDelayed混乱?
编辑:此代码的目的是我想在DISCONNECT_DELAY秒已经过去之后才继续该程序.因此,如果用户提前点击,我必须等待经过的时间才能完成.
我有一个字符串,都有英文字母和日文字符.我需要在将数据传输到服务器之前将日语字符转换为Unicode.我发现很多主题转换为UTF-8,但在转换为Unicode时我没有找到任何东西.
旁注:我还注意到,如果我将字符串放在数组中并使用NSLog打印数组,则日文文本将以Unicode格式打印.
NSString *data = @"a?";
NSArray *array = [NSArray arrayWithObjects: data, other data..., nil];
NSLog(@"%@", array);
Run Code Online (Sandbox Code Playgroud)
这将打印出:"a\U3055"表示我在数组中的字符串数据.