【发布时间】:2016-07-06 04:57:17
【问题描述】:
**编辑:已解决**
我正在测试有关 AsyncTask 功能的示例代码。但是 dobackGround() 方法没有调用代码。我接受了一些帖子的帮助并重构了我的代码,但它仍然无法正常工作
这是主布局
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText1">
</EditText>
<Button
android:text="Get Name"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
<TextView
android:text="from Web service"
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
MainActivity.java
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
WebServiceActivity.java
public class WebServiceActivity extends Activity implements View.OnClickListener {
Button btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(this);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.button1:
new LongOperation().execute("");
break;
}
}
private class LongOperation extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.interrupted();
}
}
return "Executed";
}
@Override
protected void onPostExecute(String result) {
TextView txt = (TextView) findViewById(R.id.textView1);
txt.setText("Executed"); // txt.setText(result);
}
@Override
protected void onPreExecute() {}
@Override
protected void onProgressUpdate(Void... values) {}
}
}
WebServiceActivity 包含扩展 AsyncTask 的内部类 LongOperation。是不是我的布局没有正确绑定?
需要一些建议
【问题讨论】:
标签: android android-asynctask android-studio-2.0