GOOGLE ADS

понедельник, 11 апреля 2022 г.

Флаттер | как я могу записать время, которое пользователь проводит в моем приложении во флаттере?

Я разработал и приложение, и клиент хочет, чтобы я сохранил общее время, потраченное пользователем внутри приложения,
как я могу добиться того, что я пытался использовать этот пакет App_usage во флаттере, но он показывает мне ошибку Star Activity, если у вас есть какое-либо решение, пожалуйста дайте знать заранее спасибо:)


Решение проблемы

Имейте некоторую переменную, которая отслеживает время начала и время окончания/паузы приложения и сохраняет разницу. Вам нужно будет подключить это к жизненному циклу приложения, чтобы прослушивать такие события, как приостановка/возобновление работы приложения. (например, как обрабатывать onPause/onResume в приложении Flutter? )

Что-то вроде этого:

class AppLifecycleReactor extends StatefulWidget {
const AppLifecycleReactor({Key key}): super(key: key);
@override
_AppLifecycleReactorState createState() => _AppLifecycleReactorState();
}
class _AppLifecycleReactorState extends State<AppLifecycleReactor>
with WidgetsBindingObserver {
DateTime startTime;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
startTime = DateTime.now();
}
if (state == AppLifecycleState.detached ||
state == AppLifecycleState.paused) {
var usageTime = DateTime.now().difference(startTime);
// do whatever with the usageTime
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: MyContent(),
);
}
}

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...