Реализация сервиса переднего плана Android для Timer для устройства для обновления пользовательского интерфейса каждую м ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Реализация сервиса переднего плана Android для Timer для устройства для обновления пользовательского интерфейса каждую м

Сообщение Anonymous »

Я создаю приложение для отслеживания времени в .net maui. И я хочу запустить таймер, продолжая даже приложение минимизировать, поэтому я создаю услуги переднего плана Android в Мауи. И это также работа, но моя проблема заключается в том, что я хочу уведомлять пользовательский интерфейс за каждую минуту, чтобы я мог позвонить в свой API для сохранения данных.
и для обновления UI я использую broadcastreceiver , но on-out-receive не вызывает:



Код: Выделить всё

//**Service side code:**
void SendProgressUpdate(int progress)
{
try
{
var intent = new Intent("com.foreground.app.PROGRESS_UPDATE");
intent.PutExtra("progress", progress);
AndroidCall.Application.Context.SendBroadcast(intent);
}
catch (Exception ex)
{
throw;
}
}

[BroadcastReceiver(Enabled = true, Exported = false,DirectBootAware = true)]
[IntentFilter(new[] { "com.foreground.app.PROGRESS_UPDATE" })]
public class ProgressBroadcastReceiver : BroadcastReceiver
{
public event Action ProgressUpdated;

public override void OnReceive(Context context, Intent intent)
{
if (intent.Action == "com.foreground.app.PROGRESS_UPDATE")
{
int progress = intent.GetIntExtra("progress", 0);
Log.Debug("ProgressBroadcastReceiver", $"Progress received: {progress}");
ProgressUpdated?.Invoke(progress);
}
}
}

//**UI side code**
void OnProgressUpdated(int progress)
{
System.Diagnostics.Debug.WriteLine($"Progress update received: {progress}");
lblProgress.Text = $"Progress: 000%";
// Update UI on main thread
Device.BeginInvokeOnMainThread(() =>
{
// e.g. update a ProgressBar or Label
lblProgress.Text = $"Progress: {progress}%";
});
}
Пожалуйста, помогите мне решить эту проблему

Подробнее здесь: https://stackoverflow.com/questions/797 ... every-minu

Вернуться в «Android»