アンドロイドアプリのホームウィジェットで現在時刻から五分後を表示したい

実現したいこと

  • アンドロイドアプリのホームウィジェットで現在時刻から五分後を表示したい
  • 現在時刻が12:00:00の時は、12:10:00を表示
  • 12:00:01の時は、12:10:01を表示

前提

FlutterでAndroidアプリの開発しています。
ホームウィジェットの部分をhome_widgetを使って開発しています。
ホームウィジェット部分はkotlinで記述しており、五分後を表示したいと考えていますが、方法がわかりません。
教えていただければありがたいです

該当のソースコード

example_layout.xml

1<?xml version="1.0" encoding="utf-8"?> 2 3<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:layout_margin="8dp" 8 android:orientation="vertical" 9 android:background="@drawable/widget_background" 10 android:padding="8dp" 11 android:id="@+id/widget_container"> 12 <!-- 現在時刻が表示される --> 13 <TextClock 14 android:id="@+id/text_clock" 15 android:layout_width="wrap_content" 16 android:layout_height="wrap_content" 17 android:format12Hour="hh:mm:ss a" /> 18 <!-- text_clock1に5分後の時刻を出したい --> 19 <TextView 20 android:id="@+id/text_clock1" 21 android:layout_width="match_parent" 22 android:layout_height="wrap_content" 23 android:textSize="36sp" 24 android:textStyle="bold" 25 tools:text="Text" /> 26</LinearLayout>ソースコード

HomeWidgetExampleProvider.kt

1package work.sendfun.home_widget_sample 2import es.antonborri.home_widget.HomeWidgetProvider 3import android.appwidget.AppWidgetManager 4import android.content.Context 5import android.content.SharedPreferences 6import android.widget.RemoteViews 7import android.widget.TextClock 8import android.icu.util.Calendar 9import android.util.Log 10import java.util.Date 11import java.time.format.DateTimeFormatter 12import java.text.SimpleDateFormat 13import android.os.Bundle 14import android.os.Handler 15import android.os.Looper 16 17class HomeWidgetExampleProvider : HomeWidgetProvider() { 18 override fun onUpdate( 19 context: Context, 20 appWidgetManager: AppWidgetManager, 21 appWidgetIds: IntArray, 22 widgetData: SharedPreferences 23 ) { 24// val handler = Handler(Looper.getMainLooper()) 25// handler.postDelayed(fun, 1000) 26 appWidgetIds.forEach { widgetId -> 27 val views = RemoteViews(context.packageName, R.layout.example_layout) 28 .apply { 29 setTextViewText(R.id.widget_input_data, widgetData.getString("inputData", null) 30 ?: "0") 31 val cal: Calendar = Calendar.getInstance() 32 cal.setTime(Date()) 33 var input_data: String? = widgetData.getString("inputData", null) 34 if (input_data != null) { 35 var num1: Int = input_data.toInt() 36 } 37 var num1:Int = 5; 38 cal.add(Calendar.MINUTE, num1) 39 // 5分後を取得 40 val date: Date = cal.getTime() 41 val formatter = SimpleDateFormat("HH:mm:ss") 42 setTextViewText(R.id.text_clock1, formatter.format(date) ) 43 } 44 appWidgetManager.updateAppWidget(widgetId, views) 45 } 46 } 47}

試したこと

現在のソースでは、現在時刻に合わせて、10分後の時間が更新がされない状態です

コメントを投稿

0 コメント