Есть ли способ зарегистрироваться для проведения мероприятий? Меня особенно интересуют события onStart/onStop, и я не хочу добавлять к ним специальные операции в этом мероприятии.Регистрация на мероприятиях мероприятия
ответ
Одним из способов получения событий из жизненного цикла других видов деятельности является зарегистрировать свой класс как Application.ActivityLifecycleCallbacks
с основными Application
экземпляра и фильтра событий для Activity
вас интересует.
Это короткий пример (вы можете захотеть зарегистрировать обратные вызовы из другого метода/класса, отличного от MainActivity.onCreate
, или вы пропустите это сообщение;) и у вас может быть там зависимость, которую вы не хотите)
О деятельности, которую вы хотите заглянуть:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Register a spy for this activity
getApplication().registerActivityLifecycleCallbacks(new ActivitySpy(this));
}
}
Затем код Spy выглядит примерно так:
public class ActivitySpy implements ActivityLifecycleCallbacks {
private final Activity mActivity;
public ActivitySpy(Activity activity) {
mActivity = activity;
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
if (mActivity == activity)
Log.i("SPY", "Activity Created");
}
@Override
public void onActivityDestroyed(Activity activity) {
if (mActivity == activity)
Log.i("SPY", "Activity Destroyed");
}
// (...) Other overrides
}
Вы также можете зарегистрировать шпион из другого места, если у вас есть ссылки на операцию вы хотите следовать.
Я надеюсь, что это помогает :)
EDIT: Я забыл упомянуть, что это будет работать только на уровне API 14 и выше ...
ли вы имеете в виду из другого класса? – DiogoNeves
Я предполагаю, что это глупый вопрос от меня :) позвольте мне проверить ... – DiogoNeves
Я думал о registerComponentCallbacks (callback) о действии, но это не совсем то, что вам нужно ... – DiogoNeves