Слушатель закрытия Activity

172
29 марта 2019, 16:30

У меня есть класс, который создаёт Activity в некоторых ситуациях, но он не наследуется от Activity. Как мне сделать так, что бы при закрытии Activity в классе который запустил активность исполнился некоторый участок кода.

P.S. Нужно что то на подобие: слушателя на закрытие Activity.

UPD:Запуск активности

public class DownloadAndUpdateCategories {
private List<Category> mCategoryList = new ArrayList<>();
private RealmConfiguration mConfig = Realm.getDefaultConfiguration();
private Realm mRealm = Realm.getInstance(mConfig);
public DownloadAndUpdateCategories() {
    downloadAndUpdateCategories();
}
private void downloadAndUpdateCategories() {
    ServerAPI service = RetrofitDto.getRetrofitDto().create(ServerAPI.class);
    Call<List<Category>> call = service.getCategories("user");
    call.enqueue(new Callback<List<Category>>() {
        @Override
        public void onResponse(@Nonnull Call<List<Category>> call,@Nonnull Response<List<Category>> response) {
            mCategoryList = response.body();
            updateCategories();
        }
        @Override
        public void onFailure(@Nonnull Call<List<Category>> call, @Nonnull Throwable t) {
            Log.e(getClass().getName(), "No data was received from the server. Throwable = " + t);
            RealmResults<Category> categories = mRealm.where(Category.class).findAll();
            if(categories.size() == 0){
                Intent intent = new Intent(BaseApplication.context, ErrorConnectionActivity.class);
                ((Activity) BaseApplication.context).startActivityForResult(intent, 1);
            }
        }
    });
}
private boolean updateCategories() {
    RealmAsyncTask task = Realm.getInstanceAsync(mConfig, new Realm.Callback() {
        @Override
        public void onSuccess(@Nonnull Realm realm) {
            realm.beginTransaction();
            try {
                realm.insertOrUpdate(mCategoryList);
                Log.e(getClass().getName(), "Data successfully updated");
            } catch (RealmException e) {
                Log.e(getClass().getName(), "Data not updated. Error = " + e);
            }
            realm.commitTransaction();
        }
    });
    return false;
}
}

По сути сама активность:

@Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_no_connection);
        setTitle("Нет подключения к интернету");
        btRepeat = findViewById(R.id.btRepeat);
        btRepeat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
Answer 1

startActivityForResult() подойдет?

https://developer.android.com/training/basics/intents/result?hl=ru

READ ALSO
Чтение и Запись Object Array List в файл

Чтение и Запись Object Array List в файл

Как реализовать запись объектного Array List в файл: txt или xmlПожалуйста, разъясните это на конкретных примерах

189
Как избавиться от перезаписи файла?

Как избавиться от перезаписи файла?

Есть метод writeToFile, который записывает нужные данные в файлtxt, проблема в том что текст каждый раз перезаписывается, а мне нужно чтобы добавлялся

183
Не передаются данные JSP -&gt; Controller (Spring mvc)

Не передаются данные JSP -> Controller (Spring mvc)

Изучаю SpringПытаюсь создать форму регистрации

166
Привести Object к Cookie

Привести Object к Cookie

Столкнулся с такой проблемойВ БД записал объект класса Cookie вот таким вот образом :

244