[英]Android - How to change UI from another thread in signed mode
我需要从另一个线程更改UI,所以我使用了以下代码:
runOnUiThread(new Runnable() {
@Override
public void run() {
status_txt.setText("Some msg ...");
}
});
和TextView status_txt = (TextView) findViewById(R.id.status);
在调试模式下,当我使用USB调试在手机上测试应用程序时,一切正常,并且UI正确更改。 但是,当我将应用程序导出并签名为APK文件时,安装后UI不会更改。
怎么了?
更新我的整个代码是:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Environment;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.TextView;
@SuppressLint("DefaultLocale")
public class Httpd extends Activity
{
TextView textIpaddr;
private WebServer server;
/** Called when the activity is first created. */
@SuppressLint("DefaultLocale")
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
server = new WebServer();
try {
server.start();
} catch(IOException ioe) {
Log.w("Httpd", "The server could not start.");
}
Log.w("Httpd", "Web server initialized.");
}
// DON'T FORGET to stop the server
@Override
public void onDestroy()
{
super.onDestroy();
if (server != null)
server.stop();
}
public void setTextHistory(String input) {
textIpaddr.setText(input);
}
private class WebServer extends NanoHTTPD {
public WebServer()
{
super(8080);
}
@Override
public Response serve(String uri, Method method,
Map<String, String> header,
Map<String, String> parameters,
Map<String, String> files) {
runOnUiThread(new Runnable() {
@Override
public void run() {
setTextHistory("Some Text ...");
}
});
}
}
}
只需更新您的ADT限制,错误就会消失。 http://developer.android.com/sdk
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.