本文整理了Java中android.arch.lifecycle.Lifecycle.getCurrentState()
方法的一些代码示例,展示了Lifecycle.getCurrentState()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Lifecycle.getCurrentState()
方法的具体详情如下:
包路径:android.arch.lifecycle.Lifecycle
类名称:Lifecycle
方法名:getCurrentState
[英]Returns the current state of the Lifecycle.
[中]返回生命周期的当前状态。
代码示例来源:origin: yangchaojiang/AaComponents
/**
* 返回是否当前生命中周期状态
*
* @param state Lifecycle.State
* @return boolean
**/
public boolean isAtLeast(Lifecycle.State state) {
return lifecycle.getCurrentState().isAtLeast(state);
}
代码示例来源:origin: WaylonBrown/LifecycleAwareRx
@Override
public boolean test(final T object) throws Exception {
// We've already removed the reference, don't emit anymore items.
if (lifecycleOwner == null) {
return false;
}
boolean isDestroyed = lifecycleOwner.getLifecycle().getCurrentState() == Lifecycle.State.DESTROYED;
if (isDestroyed) {
// This should have been handled in handleLifecycleEvent() at this point, but just being safe to not have
// memory leaks.
lifecycleOwner = null;
}
// If not destroyed, predicate is true and emits streams items as normal. Otherwise it ends.
return !isDestroyed;
}
代码示例来源:origin: WaylonBrown/LifecycleAwareRx
/**
* A {@link LifecycleOwner} is considered active if it is either STARTED or RESUMED.
*
* @param lifecycleOwner to check the state of.
* @return whether the lifecycleOwner is active.
*/
public static boolean isInActiveState(@Nullable LifecycleOwner lifecycleOwner) {
return lifecycleOwner != null
&& lifecycleOwner.getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED);
}
}
代码示例来源:origin: listenzz/AndroidNavigation
boolean isAtLeastStarted() {
return getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED);
}
代码示例来源:origin: listenzz/AndroidNavigation
public void scheduleTaskAtStarted(Runnable runnable) {
if (getLifecycle().getCurrentState() != Lifecycle.State.DESTROYED) {
assertMainThread();
tasks.add(runnable);
considerExecute();
}
}
代码示例来源:origin: XunMengWinter/Now
private void print() {
Logger.t(TAG).i(mLifecycle.getCurrentState().name());
}
代码示例来源:origin: florent37/RxLifecycle
@Override
public ObservableSource<T> apply(@NonNull Lifecycle lifecycle) throws Exception {
final Lifecycle.State currentState = lifecycle.getCurrentState();
if (currentState.equals(Lifecycle.State.RESUMED) || currentState.equals(Lifecycle.State.STARTED)) {
return Observable.just(value);
} else {
return onResume()
.map(new Function<Lifecycle.Event, T>() {
@Override
public T apply(@NonNull Lifecycle.Event event) throws Exception {
return value;
}
});
}
}
});
代码示例来源:origin: rsiebert/TVHClient
private void showProgramDetails(int position) {
selectedListPosition = position;
Program program = recyclerViewAdapter.getItem(position);
if (program == null || !isVisible()
|| !activity.getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
return;
}
Fragment fragment = ProgramDetailsFragment.newInstance(program.getEventId(), program.getChannelId());
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
}
代码示例来源:origin: listenzz/AndroidNavigation
@OnLifecycleEvent(Lifecycle.Event.ON_ANY)
void onStateChange() {
if (getLifecycle().getCurrentState() == Lifecycle.State.DESTROYED) {
tasks.clear();
getLifecycle().removeObserver(this);
} else {
considerExecute();
}
}
代码示例来源:origin: WaylonBrown/LifecycleAwareRx
@OnLifecycleEvent(Lifecycle.Event.ON_ANY)
void onStateChange() {
if (lifecycleOwner != null && lifecycleOwner.getLifecycle().getCurrentState() == Lifecycle.State.DESTROYED) {
// No memory leaks please
lifecycleOwner.getLifecycle().removeObserver(this);
lifecycleOwner = null;
}
}
}
代码示例来源:origin: JeremyLiao/LiveEventBus
@MainThread
public void observeSticky(@NonNull LifecycleOwner owner, @NonNull Observer<T> observer) {
if (owner.getLifecycle().getCurrentState() == DESTROYED) {
// ignore
return;
}
LifecycleBoundObserver wrapper = new LifecycleBoundObserver(owner, observer);
ObserverWrapper existing = mObservers.putIfAbsent(observer, wrapper);
if (existing != null && !existing.isAttachedTo(owner)) {
throw new IllegalArgumentException("Cannot add the same observer"
+ " with different lifecycles");
}
if (existing != null) {
return;
}
owner.getLifecycle().addObserver(wrapper);
}
代码示例来源:origin: JeremyLiao/LiveDataBus
@Override
public void observe(@NonNull LifecycleOwner owner, @NonNull Observer<T> observer) {
if (owner.getLifecycle().getCurrentState() == DESTROYED) {
// ignore
return;
}
try {
//use ExternalLifecycleBoundObserver instead of LifecycleBoundObserver
LifecycleBoundObserver wrapper = new ExternalLifecycleBoundObserver(owner, observer);
wrapper.mLastVersion = getVersion();
//Replace "ObserverWrapper existing = mObservers.putIfAbsent(observer, wrapper);"
Object existing = callMethodPutIfAbsent(observer, wrapper);
//Replace "if (existing != null && !existing.isAttachedTo(owner)) {"
if (existing != null && !callMethodIsAttachedTo(existing, owner)) {
throw new IllegalArgumentException("Cannot add the same observer"
+ " with different lifecycles");
}
if (existing != null) {
return;
}
owner.getLifecycle().addObserver(wrapper);
} catch (Exception e) {
e.printStackTrace();
}
}
代码示例来源:origin: rsiebert/TVHClient
private void showRecordingDetails(int position) {
selectedListPosition = position;
recyclerViewAdapter.setPosition(position);
TimerRecording recording = recyclerViewAdapter.getItem(position);
if (recording == null || !isVisible()
|| !activity.getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
return;
}
if (!isDualPane) {
Fragment fragment = TimerRecordingDetailsFragment.newInstance(recording.getId());
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
} else {
// Check what fragment is currently shown, replace if needed.
Fragment fragment = activity.getSupportFragmentManager().findFragmentById(R.id.main);
if (!(fragment instanceof TimerRecordingDetailsFragment)
|| !((TimerRecordingDetailsFragment) fragment).getShownId().equals(recording.getId())) {
// Make new fragment to show this selection.
fragment = TimerRecordingDetailsFragment.newInstance(recording.getId());
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.replace(R.id.details, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}
}
}
代码示例来源:origin: rsiebert/TVHClient
private void showRecordingDetails(int position) {
selectedListPosition = position;
recyclerViewAdapter.setPosition(position);
SeriesRecording recording = recyclerViewAdapter.getItem(position);
if (recording == null || !isVisible()
|| !activity.getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
return;
}
if (!isDualPane) {
Fragment fragment = SeriesRecordingDetailsFragment.newInstance(recording.getId());
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
} else {
// Check what fragment is currently shown, replace if needed.
Fragment fragment = activity.getSupportFragmentManager().findFragmentById(R.id.details);
if (!(fragment instanceof SeriesRecordingDetailsFragment)
|| ((SeriesRecordingDetailsFragment) fragment).getShownId().equals(recording.getId())) {
// Make new fragment to show this selection.
fragment = SeriesRecordingDetailsFragment.newInstance(recording.getId());
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.replace(R.id.details, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}
}
}
代码示例来源:origin: rsiebert/TVHClient
Channel channel = recyclerViewAdapter.getItem(position);
if (channel == null || !isVisible()
|| !activity.getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
return;
代码示例来源:origin: xcesco/kripton
if (owner.getLifecycle().getCurrentState() == DESTROYED) {
代码示例来源:origin: rsiebert/TVHClient
void showRecordingDetails(int position) {
selectedListPosition = position;
recyclerViewAdapter.setPosition(position);
Recording recording = recyclerViewAdapter.getItem(position);
if (recording == null || !isVisible()
|| !activity.getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
return;
}
if (!isDualPane) {
Fragment fragment = RecordingDetailsFragment.newInstance(recording.getId());
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
} else {
// Check what fragment is currently shown, replace if needed.
Fragment fragment = activity.getSupportFragmentManager().findFragmentById(R.id.details);
if (!(fragment instanceof RecordingDetailsFragment)
|| ((RecordingDetailsFragment) fragment).getShownDvrId() != recording.getId()) {
// Make new fragment to show this selection.
fragment = RecordingDetailsFragment.newInstance(recording.getId());
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.replace(R.id.details, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}
}
}
代码示例来源:origin: WaylonBrown/LifecycleAwareRx
/**
* Decides whether the stream needs to be destroyed or subscribed to.
*/
private void handleCurrentLifecycleState() {
if (lifecycleOwner != null &&
lifecycleOwner.getLifecycle().getCurrentState() == Lifecycle.State.DESTROYED) {
// No memory leaks please
this.lifecycleOwner.getLifecycle().removeObserver(this);
this.lifecycleOwner = null;
this.baseReactiveType = null;
} else if (LifecycleUtil.isInActiveState(lifecycleOwner)
&& !subscribed
&& baseReactiveType != null) {
// Subscribe to stream with observer since the LifecycleOwner is now active but wasn't previously
baseReactiveType.subscribeWithObserver();
subscribed = true;
}
}
代码示例来源:origin: JeremyLiao/LiveEventBus
if (owner.getLifecycle().getCurrentState() == DESTROYED) {
代码示例来源:origin: JeremyLiao/LiveDataBus
@Override
public void observe(@NonNull LifecycleOwner owner, @NonNull Observer<T> observer) {
//保存LifecycleOwner的当前状态
Lifecycle lifecycle = owner.getLifecycle();
Lifecycle.State currentState = lifecycle.getCurrentState();
int observerSize = getLifecycleObserverMapSize(lifecycle);
boolean needChangeState = currentState.isAtLeast(Lifecycle.State.STARTED);
if (needChangeState) {
//把LifecycleOwner的状态改为INITIALIZED
setLifecycleState(lifecycle, Lifecycle.State.INITIALIZED);
//set observerSize to -1,否则super.observe(owner, observer)的时候会无限循环
setLifecycleObserverMapSize(lifecycle, -1);
}
super.observe(owner, observer);
if (needChangeState) {
//重置LifecycleOwner的状态
setLifecycleState(lifecycle, currentState);
//重置observer size,因为又添加了一个observer,所以数量+1
setLifecycleObserverMapSize(lifecycle, observerSize + 1);
//把Observer置为active
hookObserverActive(observer, true);
}
//更改Observer的version
hookObserverVersion(observer);
}
内容来源于网络,如有侵权,请联系作者删除!