应用程序不幸在doInBackground()中停止

时间:2015-05-16 14:57:47

标签: android

应用程序突然崩溃了。 logcat表示doInBackground()中存在错误。请帮忙。

代码

private class regjson extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
Toast.makeText(getApplicationContext(), "in prExecute",        Toast.LENGTH_SHORT).show();
}
@Override
protected String doInBackground(String... params) {
try{
Toast.makeText(getApplicationContext(), "in Background", Toast.LENGTH_SHORT).show();
}
catch(Exception e)
{
e.printStackTrace();
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_SHORT).show() ;   
}
return "All Done!";
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
Toast.makeText(getApplicationContext(), "in Post Execute", Toast.LENGTH_SHORT).show();
}
}

这就是我执行它的方式

try{
new regjson().execute("hello");
}
catch(Exception e)
{
Toast.makeText(getApplicationContext(), e.toString(),Toast.LENGTH_LONG);
}

1 个答案:

答案 0 :(得分:1)

您无法在Toast中显示doInBackground()。我们无法从doInBackground()更新用户界面,您必须在onPostExecute()中进行操作。

docs

中详细了解相关信息

所以,你必须删除

Toast.makeText(getApplicationContext(), "in Background", Toast.LENGTH_SHORT).show();

来自你的代码。

如果您使用此Toast进行调试,可以使用Log.d()之类的,

Log.d("Key","in Background");

您可以在Logcat中看到此Log消息。