android doinbackground toast,如何根据AsyncTask的结果在受保护的字符串doInBackground方法中调用Toast.makeText()?...

该博客讨论了在Android应用程序中,如何在AsyncTask的doInBackground方法中处理从数据库获取的null值,并在主线程中显示Toast警告。作者遇到了在非UI线程中调用Toast的问题,尝试直接调用导致错误。解决方案涉及到在doInBackground中判断值是否为null,然后在onPostExecute方法中利用runOnUiThread显示Toast并切换到主界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我从AsyncTask中的数据库中提取数据,如果它为null,我想Toast一个警告文本。我在AsyncTask中尝试过,但我知道它不在工作线程中调用。这里是我的doInBackground方法:如何根据AsyncTask的结果在受保护的字符串doInBackground方法中调用Toast.makeText()?

protected String doInBackground(Boolean... params) {

String result = null;

StringBuilder sb = new StringBuilder();

try {

HttpClient httpclient = new DefaultHttpClient();

HttpGet httppost = new HttpGet("http://191.162.2.235/getProducts.php?login=1&user_name="+UserName+"&user_pass="+Password);

HttpResponse response = httpclient.execute(httppost);

if (response.getStatusLine().getStatusCode() != 200) {

Log.d("MyApp", "Server encountered an error");

}

BufferedReader reader = new BufferedReader(

new InputStreamReader(

response.getEntity().getContent(), "UTF8"));

sb = new StringBuilder();

sb.append(reader.readLine() + "\n");

String line = null;

while ((line = reader.readLine()) != null) {

sb.append(line + "\n");

}

result = sb.toString();

if ( result == null ) {

// Toast.makeText(getApplicationContext(), "You entered wrong values.", Toast.LENGTH_LONG).show();

asyncTask.cancel(true);

Intent inte=new Intent(MainActivity.this, MainActivity.class);

inte.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

inte.addCategory(Intent.CATEGORY_HOME);

startActivity(inte);

}

}

catch (Exception e) {

Log.e("log_tag", "Error converting result " + e.toString());

}

return result;

}

我取消了任务,创造在我的代码的新意图。你不关心他们。你看到Toast.makeText ..线,我尝试像这样当然会给出错误。我怎样才能做到这一点?如果它没有在AsyncTask中调用,我应该怎么调用?

2013-10-10

elfoz

+1

你可以发布错误吗? –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值