Я разрабатываю приложение .NET MAUI, и я хочу реализовать виджет домашнего экрана на Android, который отображает счетчик или часы-обновляя каждую секунду (например, секундомер или таймер в реальном времени).
Однако Android-ограничения видны в виде обновления в течение каждые 30 минут. /> Чего я хочу достичь:
widget, который: < /p>
является частью приложения .net maui. Реализация AppWidgetProvider с помощью пользовательского действия, которое обновляет отображаемое время при нажатии кнопки. Вот упрощенная версия моего кода: < /p>
using Android.App;
using Android.Appwidget;
using Android.Content;
using Android.Widget;
using System;
namespace Maui_Widget_Test_App.Platforms.Android.AppWidget
{
[BroadcastReceiver(Label = "Zeit-Widget", Exported = true)]
[IntentFilter(new[] { "android.appwidget.action.APPWIDGET_UPDATE", "com.example.GET_TIME" })]
[MetaData("android.appwidget.provider", Resource = "@xml/my_widget_info")]
public class CounterWidget : AppWidgetProvider
{
public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
base.OnUpdate(context, appWidgetManager, appWidgetIds);
foreach (var appWidgetId in appWidgetIds)
{
UpdateWidget(context, appWidgetManager, appWidgetId);
}
}
public override void OnReceive(Context context, Intent intent)
{
base.OnReceive(context, intent);
if (intent.Action == "com.example.GET_TIME")
{
var time = DateTime.Now.ToString("HH:mm:ss");
var appWidgetManager = AppWidgetManager.GetInstance(context);
var thisWidget = new ComponentName(context, Java.Lang.Class.FromType(typeof(CounterWidget)));
var appWidgetIds = appWidgetManager.GetAppWidgetIds(thisWidget);
foreach (var appWidgetId in appWidgetIds)
{
RemoteViews views = new RemoteViews(context.PackageName, Resource.Layout.my_widget_layout);
views.SetTextViewText(Resource.Id.buttonGetTime, time);
// Re-attach button intent
Intent buttonIntent = new Intent(context, Java.Lang.Class.FromType(typeof(CounterWidget)));
buttonIntent.SetAction("com.example.GET_TIME");
var pendingIntent = PendingIntent.GetBroadcast(context, 0, buttonIntent,
PendingIntentFlags.Immutable | PendingIntentFlags.UpdateCurrent);
views.SetOnClickPendingIntent(Resource.Id.buttonGetTime, pendingIntent);
appWidgetManager.UpdateAppWidget(appWidgetId, views);
}
}
}
private void UpdateWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId)
{
RemoteViews views = new RemoteViews(context.PackageName, Resource.Layout.my_widget_layout);
Intent buttonIntent = new Intent(context, Java.Lang.Class.FromType(typeof(CounterWidget)));
buttonIntent.SetAction("com.example.GET_TIME");
var pendingIntent = PendingIntent.GetBroadcast(context, 0, buttonIntent,
PendingIntentFlags.Immutable | PendingIntentFlags.UpdateCurrent);
views.SetOnClickPendingIntent(Resource.Id.buttonGetTime, pendingIntent);
appWidgetManager.UpdateAppWidget(appWidgetId, views);
}
}
}
Как я могу реализовать виджет в .net maui для Android, который обновляет каждую секунду или близко к реальному времени-хотя Android ограничивает обновления виджетов до 30-минутного интервала? /> чертеж с помощью холста или с использованием GLANCE?>
Я разрабатываю приложение .NET MAUI, и я хочу реализовать виджет домашнего экрана на Android, который отображает счетчик или часы-обновляя каждую секунду (например, секундомер или таймер в реальном времени). Однако Android-ограничения видны в виде обновления в течение каждые 30 минут. /> Чего я хочу достичь: widget, который: < /p> является частью приложения .net maui. Реализация AppWidgetProvider с помощью пользовательского действия, которое обновляет отображаемое время при нажатии кнопки. Вот упрощенная версия моего кода: < /p> [code]using Android.App; using Android.Appwidget; using Android.Content; using Android.Widget; using System;
public override void OnReceive(Context context, Intent intent) { base.OnReceive(context, intent);
if (intent.Action == "com.example.GET_TIME") { var time = DateTime.Now.ToString("HH:mm:ss");
var appWidgetManager = AppWidgetManager.GetInstance(context); var thisWidget = new ComponentName(context, Java.Lang.Class.FromType(typeof(CounterWidget))); var appWidgetIds = appWidgetManager.GetAppWidgetIds(thisWidget);
foreach (var appWidgetId in appWidgetIds) { RemoteViews views = new RemoteViews(context.PackageName, Resource.Layout.my_widget_layout); views.SetTextViewText(Resource.Id.buttonGetTime, time);
[/code] Как я могу реализовать виджет в .net maui для Android, который обновляет каждую секунду или близко к реальному времени-хотя Android ограничивает обновления виджетов до 30-минутного интервала? /> чертеж с помощью холста или с использованием GLANCE?>
Я разрабатываю приложение .NET MAUI, и я хочу реализовать виджет домашнего экрана на Android, который отображает счетчик или часы-обновляя каждую секунду (например, секундомер или таймер в реальном времени).
Однако Android-ограничения видны в виде...
Я успешно создал игру «камень, ножницы, бумага» на Python, но у меня возникли проблемы с тем, чтобы заставить игрока играть в игру до лучших из 7.
Я бы хотел Чтобы игра запустилась 7 раз, подсчитайте очки (т. е., если выиграл компьютер, выиграл...
Я успешно создал игру «камень, ножницы, бумага» на Python, но у меня возникли проблемы с тем, чтобы заставить игрока играть в игру до лучших из 7.
Я бы хотел Чтобы игра запустилась 7 раз, подсчитайте очки (т. е., если выиграл компьютер, выиграл...
Проблема: если я разбил кнопку, я получил несколько таймеров.
lateinit var timer1: CountDownTimer
...
Button(onClick = {
timer1 = object: CountDownTimer(20000000, 1000) {
override fun onTick(millisUntilFinished: Long) {
Log.d( mytagtt , timer )
}...
Проблема: если я разбил кнопку, я получил несколько таймеров.
lateinit var timer1: CountDownTimer
...
Button(onClick = {
timer1 = object: CountDownTimer(20000000, 1000) {
override fun onTick(millisUntilFinished: Long) {
Log.d( mytagtt , timer )
}...