Ошибка завершения работы Android - PullRequest
1 голос
/ 01 июля 2011

Итак, у меня проблема с завершением задания и возвращением к родительскому (правильный термин?) Действию.

Он попадает в этот поток. ActivityThread.performResumeActivity (IBinder, boolean) строка: 2241 и затем выдает мне строку InvocationTargetException. (Throwable): 50 со следующей ошибкой

java.lang.RuntimeException: Невозможно возобновить действие .companionpushup / database / Exercise Data уже закрыты

Так что, я думаю, я запутался, как у меня возникает ошибка, связанная с моей базой данных, когда она просто пытается завершить свою деятельность и вернуться к исходной активности (но никогда не вызывает метод onResume в исходной операции).

Код, который был вызван для начала нового действия

 public void takeRest(int time, int addTime) {
    Intent i = new Intent(this, TimerActivity.class);
    i.putExtra("time", time);
    i.putExtra("addTime", addTime);
    startActivity(i);

} 

Затем мой пользовательский таймер работает, пока я не нажму эту кнопку, чтобы пропустить оставшуюся часть таймера. На этом этапе он никогда не возвращается к исходному действию (я установил точки останова в onCreate, onStart, onResume, onActivityResult), ни одна из точек останова никогда не достигается без ошибки.

Button skip = (Button)findViewById(R.id.skip);
    skip.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            timer.cancel();
            setResult(RESULT_OK);
            finish();
        }

    });

Другой код из оригинального Activity, но он никогда не достигается, когда я прохожу через отладчик

@Override
protected void onResume() {
    super.onResume();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    Toast.makeText(WorkoutActivity.this, "Yay", Toast.LENGTH_SHORT).show();
}

Ответы [ 2 ]

1 голос
/ 01 июля 2011

Ошибка говорит вам, что вам нужно знать:

java.lang.RuntimeException: Unable to resume activity {com.android.market.companionpushup/com.android.market.companionpushup.WorkoutActivity}: java.lang.IllegalStateException: database /data/data/com.android.market.companionpushup/databases/Exercise Data already closed

То, что это говорит о том, что соединение с базой данных, используемое в классе com.android.market.companionpushup.WorkoutActivity, было закрыто, но было необходимо для чего-то (возможно, перезаполнение ListView?). Вы должны проверить свой код onPause или onStop в WorkoutActivity, чтобы убедиться, что вы неправильно закрываете базу данных. Вы используете CursorLoader или startManagingCursor?

1 голос
/ 01 июля 2011

Может быть, вы должны начать деятельность с startActivityForResult() методом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...