Tôi có một appwidget thực sự đơn giản (hai chế độ xem văn bản và một nút). Tôi đã thử nghiệm nó trên một Touchpad, Droid 1, và một Droid Razr. Nó hoạt động trên mọi thứ ngoại trừ Razr. Khi tôi thêm tiện ích vào màn hình chính, nó không hiển thị; nó chỉ là vô hình. Nếu tôi giữ vị trí nơi nó sẽ là nó chọn một widget và nếu tôi di chuyển nó xung quanh tôi thấy các vật dụng khác di chuyển ra khỏi con đường nhưng nó hoàn toàn vô hình.Android AppWidget không hiển thị trên một số điện thoại
Tôi đặt một số bánh mì nướng trong các phương pháp onReceive
và onEnabled
và Toast
hiển thị tất cả thông tin phù hợp (ví dụ: hành động ý định và tính năng bổ sung).
Bất kỳ ai có kinh nghiệm với điều này?
EDIT: Hãy ghi nhớ điều này chỉ để gỡ lỗi và không làm theo thông lệ tốt nhất
public class GoogleTalkWidget extends AppWidgetProvider {
Button sendMessage;
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Received Intent Action = " +
intent.getAction(), Toast.LENGTH_SHORT).show();
if(intent.getAction().equals(Utils.RECEIVED_MESSAGE_WIDGET)){
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.main_widget);
views.setTextViewText(R.id.widget_message,
(CharSequence)intent.getStringExtra("MESSAGE"));
views.setTextViewText(R.id.widget_sender,
(CharSequence)intent.getStringExtra("SENDER"));
Toast.makeText(context, "Received " +
intent.getStringExtra("MESSAGE") + " FROM " +
intent.getStringExtra("SENDER"), Toast.LENGTH_SHORT).show();
ComponentName cn = new ComponentName(context,
GoogleTalkWidget.class);
AppWidgetManager.getInstance(context).updateAppWidget(cn, views);
}
super.onReceive(context, intent);
}
@Override
public void onEnabled(final Context context){
super.onEnabled(context);
Toast.makeText(context, "Enabled", Toast.LENGTH_SHORT).show();
}
}
'onReceive()'? Bạn có nghĩa là 'onUpdate()' của 'AppWidgetProvider' của bạn? – CommonsWare
bạn cũng có thể ghi đè lên phương thức 'onReceive()' trong appwidget ... Tôi nghĩ rằng họ đã để nó trong vì các phiên bản trước của Android có một số vấn đề với 'onDelete' – Eliezer
Tôi hiểu điều đó. Tuy nhiên, 'onUpdate()' thường là nơi bạn sẽ cung cấp 'RemoteViews' để khai báo những gì nên đi trong widget ứng dụng. Có phải 'onUpdate()' đang được gọi và bạn có cung cấp thành công 'RemoteViews' không? Có điều gì trong LogCat có thể liên quan (ví dụ: dấu vết ngăn xếp) không? – CommonsWare