以前我有错误 - 关于某个循环,我已经看到信息,在这种情况下有必要为按钮启动一个新线程,但仍然没有任何反应,思想日志现在没有显示错误。
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int CAPTURE = 9003;
Button button;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.capture);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(context, "BUTTON clicked", Toast.LENGTH_LONG).show();
Log.d("BUTTON","CLICKED");
}
});
}
});
Intent intent = new Intent(this, CaptureActivity.class);
intent.putExtra(CaptureActivity.AutoFocus, true);
startActivityForResult(intent, CAPTURE);
}
}
答案 0 :(得分:1)
runOnUiThread
表示您告诉UI线程执行传递的Runnable
as指令,因此它不会创建新线程。
解决方案:我假设您的此代码仅用于演示以进行线程和UI更新,因此最好的选择之一是AsyncTask
并删除runOnUiThread
功能,不需要它
您需要删除此代码或在运行方法
中移动它Intent intent = new Intent(this, CaptureActivity.class);
intent.putExtra(CaptureActivity.AutoFocus, true);
startActivityForResult(intent, CAPTURE);
因为您目前位于CaptureActivity
而不是MainActivity
。
OnCreate
将直接带您到CaptureActivity
您希望MainActivity
代码运行的地方(可能是相同的用户界面)