Есть ли способ перехватить активность Android после ее создания? - PullRequest
0 голосов
/ 23 января 2011

Есть ли способ перехвата всякий раз, когда приложение создает новый экземпляр действия? Меня интересуют только действия, относящиеся к процессу подачи заявки, а не все действия по телефону. Есть ли способ сделать это? Участвует ли класс Application в этом? Какие методы я могу переопределить, чтобы получить экземпляр Activity после его создания?

1 Ответ

2 голосов
/ 23 января 2011

Хорошо, просто идея - в своем приложении вы можете создать базовый класс действий, чтобы все остальные действия были разделены на подклассы из этого базового действия. Затем в обратном вызове onCreate() вы можете уведомить некоторый экземпляр прослушивателя о факте создания нового экземпляра действия приложения:

public class BaseActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // put the code to notify a listener here
    }

}

public class YourWorkingActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
    }
}

Если вы используете ListActivity (что характерно для обычного приложения для Android), то вам также следует создать аналогичную BaseListActivity для него.

Скорее всего, лучшим кандидатом для слушателя будет подкласс Application, поскольку он гарантирован ОС, которая будет создана до того, как будет создан экземпляр Activity.

Предупреждение : вам следует избегать сохранения сильной ссылки на Activity в слушателе, поскольку это приведет к утечке памяти, когда ОС попытается уничтожить это Activity (как часть жизни Activity или Process). -цикл). Вероятно, для этого используйте WeakReference .

...