2
활동의 이벤트에 등록하는 방법이 있습니까? 필자는 onStart/onStop 이벤트에 특별히 관심이 있으며이를위한 특별한 작업을 추가하고 싶지 않습니다. 다른 활동의 라이프 사이클에서 이벤트를 얻을활동의 이벤트 등록
활동의 이벤트에 등록하는 방법이 있습니까? 필자는 onStart/onStop 이벤트에 특별히 관심이 있으며이를위한 특별한 작업을 추가하고 싶지 않습니다. 다른 활동의 라이프 사이클에서 이벤트를 얻을활동의 이벤트 등록
한 가지 방법은 당신이 관심있는 Activity
의 주요 Application
인스턴스와 필터 이벤트가있는 Application.ActivityLifecycleCallbacks
로 클래스를 등록하는 것입니다.
이 짧은 예이다 (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));
}
}
당신이 수행 할 작업에 대한 참조가있는 경우 당신은 또한 다른 장소에서 스파이를 등록 할 수 있습니다
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
}
:
그런 다음 스파이 코드가 같이 보입니다.
나는이 도움이 되었으면 좋겠 :)편집 : 내가 얘기를 깜빡 했네요, 이것은 단지 API 레벨 14 이상에서 작동합니다 ...
가 다른 클래스에서 의미합니까? – DiogoNeves
나는 그렇게 생각한다. 내게 어리석은 질문이다. 내가 확인하자. – DiogoNeves
나는 activity에 대해 registerComponentCallbacks (callback)에 대해 생각하고 있었지만, 정말로 필요한 것은 아니다 ... – DiogoNeves