使用值为5,15,20和30分钟的无线电列表。默认情况下,选择15分钟。
现在我需要不断检查功能,选择5秒。当选择15秒单选按钮然后取消订阅可观察的5秒并使用Observable启动15秒子星际。
当应用程序处于后台时,我需要不断检查上面的场景,选择哪个无线电列表值,并根据我需要启动Observable的值。
我正在使用离子框架(下面的代码),何时订阅和取消订阅?
this.timerOneHourSubscription = Observable.interval(15000)
.subscribe((val) => {
}
示例如下:
timerOneHourSubscription: Subscription;
constructor() {
this.showBadge();
}
}
/**
* This function allows to display badge on app icon
*/
showBadge() {
//by default one hour subscription
var refreshInterval =
localStore.getPersistedData(localApp.ISRADIOGROUP_KEY);
console.log('refreshInterval', refreshInterval);
this.timerOneHourSubscription = Observable.interval(refreshInterval)
.subscribe((val) => {
if (localStore.getPersistedData(localApp.ISRADIOGROUP_KEY) != null) {
if (localStore.getPersistedData(local.ISBADGE_ENABLED_KEY) != null) {
let badgeToggleEnable = local.getPersistedData(local.ISBADGE_ENABLED_KEY);
if (badgeToggleEnable) {
if (this.Items != null) {
if (localStore.getPersistedData(localApp.ITEMS_KEY) != null) {
this.Items = localStore.getPersistedData(localApp.ITEMS_KEY);
var count = 0;
for (let i = 0; i < this.Items.length; i++) {
var unRead= this.Items[i].unRead;
if (unRead) {
count++;
}
}
this.badge.set(unRead++);
}
}
}
else {
this.badge.clear();
}
}
}
});
}
您可以使用以下内容清除订阅并致电新订阅。
Observable.interval(15000).takeUntil(this.onDestroy$)
.subscribe(() => {
当您想要销毁当前订阅并开始新订阅时,这将帮助您。
要破坏当前的一个,你可以在下面使用: -
this.onDestroy$.next();
您必须在页面顶部声明以下内容: -
private onDestroy$ = new Subject<void>();
而不是在Observable中发送静态值尝试发送方法并一次又一次地调用相同的方法。
我在选择任何radiobutton unsubscribe observable之前找到了我的解决方案并再次启动它
unSubscribetimerhourSubscription() {
this.timerhourSubscription.unsubscribe();
}