this ट्यूटोरियल के आधार पर मैंने एक विजेट बनाया जो समय दिखाना चाहिए। जावा रास्ता काम करता है, लेकिन सेवा का तरीका नहीं है।एंड्रॉइड विजेट अपडेट
HelloWidget.java:
public class HelloWidget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
Intent intent = new Intent(context, UpdateService.class);
context.startService(intent);
}
UpdateService.java: एंड्रॉयड: updatePeriodMillis = "1000"
public final class UpdateService extends Service {
@Override
public void onStart(Intent intent, int startId) {
RemoteViews updateViews = new RemoteViews(this.getPackageName(), R.layout.main);
Date date = new Date();
java.text.DateFormat format = SimpleDateFormat.getTimeInstance(
SimpleDateFormat.MEDIUM, Locale.getDefault());
updateViews.setTextViewText(R.id.widget_textview, "Current Time " + format.format(date));
ComponentName thisWidget = new ComponentName(this, HelloWidget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(thisWidget, updateViews);
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
hello_widget_provider.xml इस पंक्ति है समस्या: विजेट वर्तमान समय दिखाता है लेकिन यह अद्यतन नहीं कर रहा है (जावा-रास्ता है)।
मेरा मुख्य लक्ष्य विजेट को अपडेट करना है उदा। 18:56 हर दिन। Idk अगर यह अच्छा तरीका है, लेकिन मैं नीचे की तरह onUpdate विधि को संशोधित करने की कोशिश की है, लेकिन यह ALARM_SERVICE के साथ एक समस्या है: ALARM_SERVICE करने के लिए वैरिएबल
public class HelloWidget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
AlarmManager alarmManager;
Intent intent = new Intent(context, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 18);
cal.set(Calendar.MINUTE, 56);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 86400, pendingIntent);
} }
कोई हल नहीं किया जा सकता है मदद की सराहना की है।
मुझे खेद है, लेकिन आप कहां सेट कर रहे हैं जिसे दोहराव अंतराल निर्धारित करना है? –
'm.setRepeating (AlarmManager.RTC, TIME.getTime()। GetTime(), 1000 * 1, सेवा);' – erdomester
हाँ, धन्यवाद, मैं इसके साथ आता हूं। मुझे यह भी रूचि है कि मैं विशिष्ट समय कैसे निर्धारित कर सकता हूं, जिस पर अद्यतन किया जाएगा। –