Android AsyncTask:黑屏而不是ProgressBar
我已经实现了一个Android AsyncTask:黑屏而不是ProgressBar,android,android-asynctask,progress-bar,Android,Android Asynctask,Progress Bar,我已经实现了一个AsyncTask,使用内容解析器从收件箱读取短信 我已经在ProgressBar的onPreExecute和onPostExecute中放置了相应的可见性代码,但是ProgressBar没有显示。相反,我被困在一个黑屏上,就像当前活动是在前一个活动之后加载的一样(甚至前一个活动的祝酒词也永远被困在那里) public class ReadingSMS extends AsyncTask<String, String, Cursor> { pro
AsyncTask
,使用内容解析器从收件箱读取短信
我已经在ProgressBar
的onPreExecute
和onPostExecute
中放置了相应的可见性代码,但是ProgressBar
没有显示。相反,我被困在一个黑屏上,就像当前活动是在前一个活动之后加载的一样(甚至前一个活动的祝酒词也永远被困在那里)
public class ReadingSMS extends AsyncTask<String, String, Cursor> {
protected void onPreExecute() {
super.onPreExecute();
mLoadingIndicator.setVisibility(View.VISIBLE);
}
@Override
protected void onPostExecute(Cursor result) {
mLoadingIndicator.setVisibility(View.INVISIBLE);
int indexDate = result.getColumnIndex("date");
int indexBody = result.getColumnIndex("body");
do {
// String str = "SMS From: " + smsInboxCursor.getString(indexAddress) +
// "\n" + smsInboxCursor.getString(indexBody) + "\n";
// arrayAdapter.add(str);
if (!stopReading) {
Date date = new Date(Long.parseLong(result.getString(indexDate)));
String newDate = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(date);
//DateTime fmt = DateTime.parse(date.toString(),DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss z yyyy"));
//String formattedDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").format(date);
// Toast.makeText(this,newDate,Toast.LENGTH_SHORT).show();
Transaction tr = new Transaction(ScrollingActivity.this);
if (tr.isTransaction(result.getString(indexBody))) {
Log.d("here now bro", "yea");
tr.msg = result.getString(indexBody);
tr.date = newDate;
tr.call(ScrollingActivity.this);
}
}
} while (result.moveToNext());
}
@Override
protected Cursor doInBackground(String... params) {
return refreshSmsInbox();
}
}
}
public Cursor refreshSmsInbox() {
ContentResolver contentResolver = getContentResolver();
Cursor smsInboxCursor = contentResolver.query(Uri.parse("content://sms/inbox"), null, null, null, null);
int indexBody = smsInboxCursor.getColumnIndex("body");
if (indexBody < 0 || !smsInboxCursor.moveToFirst()) return null;
// arrayAdapter.clear();
return smsInboxCursor;
}
Cursor result = null;
try {
result = new ReadingSMS().execute().get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
// I put my code from onPostExecute here.