您好,我正在 android 3.2 上开发,并且有一个活动,我使用 asynctask 在工作线程上执行 sql 查询,然后在 UI 线程上填充列表视图。不知何故,有时我得到
06-20 15:25:00.270: E/StrictMode(6353): class com.abc.activity.ElencoOrdiniActivity; instances=2; limit=1
06-20 15:25:00.270: E/StrictMode(6353): android.os.StrictMode$InstanceCountViolation: class com.abc.activity.ElencoOrdiniActivity; instances=2; limit=1
06-20 15:25:00.270: E/StrictMode(6353): at android.os.StrictMode.setClassInstanceLimit(StrictMode.java:1)
是我的错吗?异步任务不保留上下文,而是使用 MyActivity.this
这是代码
AsyncTask<Void, Void, List<JSONArray>> async = new AsyncTask<Void, Void, List<JSONArray>>()
{
@Override
protected List<JSONArray> doInBackground(Void... params) {
MyApp appState = ((MyApp)getApplicationContext());
cursor_ordini = getHelper().getReadableDatabase().rawQuery("...");
cursor_ordini.moveToFirst();
List<JSONArray> ordini = new Vector<JSONArray>();
if (cursor_ordini.getCount() > 0)
{
....
return ordini;
}
return null;
}
@Override
protected void onPostExecute(List<JSONArray> ordini) {
super.onPostExecute(ordini);
MyApp appState = ((MyApp)getApplicationContext());
ListView listView = (ListView) ElencoOrdiniActivity.this.findViewById(R.id.listView_elenco_ordini);
listView.setAdapter( new OrdiniAdapter(ElencoOrdiniActivity.this, R.layout.elenco_ordini_instestazione, ordini));
listView.setOnScrollListener( new EndlessOrdiniScrollListener(ElencoOrdiniActivity.this, appState.getDittaIdSelezionata(), "") );
}
};
async.execute();