Hello i am developing on android 3.2 and have an activity where i use an asynctask to do an sql query on the worker thread and then populate a listview on the UI thread. Somehow sometimes i get
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)
is it my fault ? the async task doesn't hold on to the context, but uses MyActivity.this
here is the code
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();