오리엔테이션 변경을 허용하지 않는 애플리케이션의 일부로이 내부 클래스를 가졌습니다 (가로 방향에서 더 의미가 있습니다).Android aSyncTask 및 다른 액티비티를 시작합니다.
private class initialDBQuery extends AsyncTask<SQLiteDatabase, Void, Cursor> {
@Override
protected Cursor doInBackground(SQLiteDatabase... params) {
final SQLiteDatabase mDatabase = params[0];
mCursor = mDatabase.rawQuery("SELECT * FROM database", null);
return mCursor;
}
@Override
protected void onPostExecute(Cursor c){
ParentActivity.this.mCursor = mCursor;
ParentActivity.this.updateQuery();
mDatabase.close(); //Close database connection ASAP
}
// can use UI thread here
protected void onPreExecute() {
ParentActivity.this.mAnimalPager = null;
Toast.makeText(ParentActivity.this.getBaseContext(), "Loading Database...", Toast.LENGTH_SHORT).show();
}
}
내 메인 UI 다른 활동으로 이어질 다수의 버튼을 가지고, 함수있는 다음 검색을 수행 할 주요 활동 (ParentActivity)에 텐트를 통해 검색 기준을 제공하는 것이다. 나머지 주요 활동은 AsyncTask에서 반환 된 커서에 의존하는 뷰 페이지입니다 (이 업데이트는 정상적으로 작동합니다).
내 문제는 다음과 같습니다. asynctask가 실행되는 동안이 코드를 사용하여 화면 버튼 중 하나를 누릅니다 (다른 활동 시작). "활동을 일시 중지 할 수 없습니다"오류가 발생합니다.
앱이 일시 중지되었을 때 AsyncTask를 실행하는 데 필요한 추가 단계는 무엇입니까?
감사, m 당신을 위해 그 일이 될 수있는 다른 활동을 시작 후 AsyncTask를 취소하고
, 당신은 그것을 해결하기 위해 필요합니다. 전체 stacktrace 게시 및 누군가가 문제가 무엇인지에 대한 아이디어를 줄 수 있습니다. –
예 - 원래 asynctask가 실행되는 동안 다른 작업을로드 할 수 있는지 코드에서 잠시 멈췄습니다. 그것이 문제를 일으켰습니다. stacktrace를 추가 할 때 wait isrunning이 있다고 상상해야합니다. – mAndroid