2016-05-02 2 views
0

У меня есть одноэлементный класс, один из методов которого принимает имя класса активности источника и имя класса назначения.Прослушиватель активности за пределами класса

Public void handleActivityTransition(Activity srcActivity, String destActivity){ 

srcActivity.startActivity(new intent (srcActivity 

, destActivity));

Этот метод в основном запускает операцию назначения. Однако этот метод/класс должен выполнять операцию, когда целевое действие уничтожается/завершается (например, кнопка возврата или другое действие).

Способ, которым я решаю это как то, что я перезаписываю метод уничтожения действия назначения и вызывая метод в классе singleton. Однако я чувствую, что это плохой подход. Есть ли слушатель или какой-либо другой способ узнать, когда целевая деятельность будет уничтожена из вышеописанного класса Singleton.

Благодаря

+0

уже ответил здесь http://stackoverflow.com/questions/14785806/android-how-to-make-an-activity-return-results-to-the-activity-which-calls-it – user3167086

ответ

0

Похоже, что все, что вам нужно сделать, это начать Intent по startActivityForResult() , а затем передать requestCode на основе комбинации, которую вы пытаетесь достичь.

И, наконец, вы можете выполнить любую задачу, которую хотите сделать в onActivityResult() из исходной операции в соответствии с кодом запроса, который вы сделали ранее.

Я действительно не вижу здесь использования Singleton. Может создавать любую комбинацию из самого источника. Но вы можете реализовать это и в синглтоне, если хотите, приложите немного усилий. Хотя было бы намного проще сделать это в самой исходной деятельности.

+0

Спасибо u. Проблема в том, что inactivityresult вызывается для источника, и я хочу, чтобы singleton был тем, кто выполнял работу. Да, я знаю, что это не лучшая вещь, но у меня есть причины использовать синглтон в этом случае. – Snake

+0

Ну, тогда фиктивная активность делает эту работу каждый раз. Фиктивная деятельность без макета или чего-то еще. Это решило бы проблему. Вместо синглтона используйте фиктивную активность как одноэлементный, который всегда хранит одну копию. Или намного лучше фрагмент. Фрагмент без пользовательского интерфейса. Оттуда вы можете сделать это легко. –

+0

Фактически вы можете протекать в вашей деятельности. Утечка активности, чтобы она всегда оставалась в живых, а затем делайте все, что хотите, с помощью синглтона в этом упражнении. –

Смежные вопросы