Уже несколько дней я получаю ошибки SIGSEGV в случайных точках в моем приложении.Он падал, когда я ничего не делал.
Я начал разбирать код, чтобы увидеть, какая строка вызывала эту сегментацию, и был очень потрясен, когда узнал, что это: (барабанная дробь, пожалуйста)
Activity.setResult(Activity.OK,intent)
ЧТО?Это все еще не имеет никакого смысла для меня вообще!В строке ниже я покажу вам мой код до и после, и кто-нибудь может сказать мне, ПОЧЕМУ SIGSEGV происходил?
До
CommentActivity:
val comments = ArrayList<Comment>()
comments.add(comment)
/*Set the results*/
val intent = Intent()
intent.putExtra("comment_result", Utils.General.serializeToJson(comments))
this.setResult(Activity.RESULT_OK, intent)
this.finish()
MainActivity:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
switch (requestCode) {
//catch data from CommentActivity
case (INTENT_COMMENT): {
if (resultCode == RESULT_OK) {
String comments = intent.getExtras().getString("comment_result");
if (comments != null && !comments.isEmpty()) {
/*Save the instance to the database and expect the database observable to call the upload thread*/
Type type = new TypeToken<ArrayList<Comment>>() {}.getType();
ArrayList<Comment> list = Utils.General.Companion.deserializeFromJson(comments, type);
/*Save the instance to the database and expect the database observable to call the upload thread*/
DataSource.INSTANCE.saveComments(list);
} else {
showToast(getResources().getString(R.string.picture_lost), Toast.LENGTH_SHORT);
}
}
break;
}
==== Сбой в MainActivity после 10 сек и 1 минуты =====
После - без сбоя
КомментарийДеятельность:
/*Set the results*/
DataSource.saveComments(comments)
this.finish()