我正在使用 Asynctask 进行一些处理,之后使用剩余/附加项目(添加或删除案例)更新 UI 列表。
该功能在我在 Android Studio 中工作的调试 apk 中正常工作。但是,它在发布 APK 文件中不起作用。
当我进一步分析时,我发现当我锁定和解锁屏幕,或者我关闭并重新打开应用程序时,该功能显示正确的结果。它仅在产生瞬时更新时失败。
这就是为什么我觉得异步任务有问题的原因。
public class RefreshDisplayAsyncTask extends AsyncTask<Void, Void, Void> {
private Activity curActivity = null;
private boolean shouldProceed = false;
public RefreshDisplayAsyncTask(Activity activity)
{
curActivity = activity;
}
protected Void doInBackground(Void... params) {
//Log.d("UIBug","RefreshTask entered");
((MainActivity)curActivity).setUpList();
shouldProceed = false;
curActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
((MainActivity)curActivity).listView.setAdapter(new listArrayAdapter(curActivity,((MainActivity)curActivity).list1,((MainActivity)curActivity).list2));
shouldProceed = true;
}
});
while(!shouldProceed){}
//Log.d("UIBug","RefreshTask completed");
return null;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Void result) {
// if(progressDialog!=null)
// {
// progressDialog.dismiss();
// }
}
}
为什么签名的 apk 产生不正确的行为而未签名的 apk 行为正确?如何纠正这种情况?