Tôi đang viết một widget với một hoạt động cấu hình trong đó kêu gọi các phương pháp sau đây khi nút OK
của nó được nhấp:Làm cách nào để buộc cập nhật trong hoạt động cấu hình?
private void ok()
{
// ...Do Widget Configuration...
// Force an update
Context context = getApplicationContext();
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
AppWidgetManager.getInstance(context).updateAppWidget(widget_id, views);
// Return the expected result
Intent result = new Intent();
result.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widget_id);
setResult(RESULT_OK, result);
finish();
}
này là gần như nguyên văn từ the documentation. widget_id
giữ ID tiện ích đã được đào lên trong hoạt động onCreate()
của hoạt động.
Khi tôi đặt một thể hiện của các widget trên màn hình chủ, tôi đã xác minh rằng tôi nhận được chuỗi dự kiến các sự kiện:
onReceive()
được mộtACTION_APPWIDGET_ENABLED
nếu đó là người đầu tiên.onUpdate()
được gọi (trong đó tôi phát hiện thấy tiện ích không được định cấu hình và vẽ thứ gì đó làm tác vụ mặc định).- Hoạt động cấu hình xuất hiện.
- Khi tôi nhấn
OK
, phương thứcok()
ở trên được gọi.
Method lấy tất cả các cách thức thông qua vào finish()
và hoạt động cấu hình sẽ biến mất, nhưng không có cuộc gọi đến hoặc onUpdate()
onReceive()
sau thời điểm này. (Tiện ích chính nó không có updatePeriodMillis
.) Tôi kết thúc với một widget trên màn hình có kết quả của hành động mặc định của tôi nhưng không bao giờ được cập nhật.
Nếu tôi đặt tiện ích lên mà không có hoạt động cấu hình, nó sẽ được cập nhật khi được tạo và mọi thứ hoạt động như mong đợi (chỉ không có các bit được định cấu hình).
Tôi có thiếu thứ gì đó theo cách tôi cập nhật không?
Cảm ơn!
Wow, không ai ...? – Blrfl
đây là lỗi đã biết trong android: onUpdate chỉ nên được gọi khi bạn đã trở về từ hoạt động cấu hình của mình. Tôi có chung vấn đề đó. Hy vọng rằng 3.2 sẽ giải quyết nó – soBinary