Я пытаюсь сохранить значения текущей даты в миллисекундах в AsyncStorage setItem и получить его с помощью getItem при изменении состояния приложения. Я использую слушатели AppState для изменения состояния и сравнения значений. Это прекрасно работает, когда я запускаю его на симуляторах IOS, но не работает, когда я работаю на устройстве Android. Кто-нибудь может мне помочь?
StoreDate = async () => {
console.log("Date",new Date().getTime().toString());
await AsyncStorage.setItem('date', new Date().getTime().toString());
};
retrieveDate = async () =>
{
try{
let value = await AsyncStorage.getItem('date')
var Intvalue = parseInt(value,10); // value of newDate().getTime() as Integer
console.log("Intvalue",Intvalue);
console.log("value",value);
Alert.alert(value);
return value;
}
catch(error){
Alert.alert(error);
}
};
_handleAppStateChange = (nextAppState) =>
if (this.state.appState.match(/inactive/) && nextAppState === 'background') {
let getDateTime = this.StoreDate().then((filter) => {
console.log("filter",filter);
console.log("getDateTime",getDateTime);
});
}
else if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
let currentDate = new Date().getTime();
let currentDateTimeStamp = Math.floor(currentDate / 1000);
console.log("currentDate",currentDate);
console.log("currentDateTimeStamp",currentDateTimeStamp);
let storedTime = this.retrieveDate().then((filter)=> {
console.log("filter",filter);
console.log("storedTime",storedTime);
var Intfilter = parseInt(filter,10);
console.log("Intfilter",Intfilter);
var IntfilterSeconds = Math.floor(Intfilter / 1000);
console.log("IntfilterSeconds",IntfilterSeconds);
var timeDiff = currentDateTimeStamp - IntfilterSeconds;
console.log("timeDiff",timeDiff)
if(timeDiff > 300){
** DO Something **
})
}
else{
** Do Something **
})
}
});
}