Открытие диалога при касании живых обоев Android - PullRequest
0 голосов
/ 02 декабря 2010

Я хотел бы открыть диалоговое окно с некоторой простой информацией о нем при нажатии на живые обои. Переопределение onCommand в живых обоях Android и добавление настраиваемого диалогового окна практически прямо из документов Android (с макетом info_dialog.xml не показано):

@Override
public Bundle onCommand (String action, int x, int y, int z, Bundle extras, boolean resultRequested)
{
 System.out.println(action);  
 Context mContext = getApplicationContext();
 Dialog dialog = new Dialog(mContext);

 dialog.setContentView(R.layout.info_dialog);
 dialog.setTitle("Custom Dialog");

 TextView text = (TextView) dialog.findViewById(R.id.text);
 text.setText("Hello, this is a custom dialog!");

 dialog.show();

 return null
}    

только генерирует исключение:

12-02 07:14:40.880: ERROR/AndroidRuntime(295): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
12-02 07:14:40.880: ERROR/AndroidRuntime(295):     at android.view.ViewRoot.setView(ViewRoot.java:509)

12-02 07:14:40.880: ERROR/AndroidRuntime(295):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)

12-02 07:14:40.880: ERROR/AndroidRuntime(295):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)

12-02 07:14:40.880: ERROR/AndroidRuntime(295):     at android.app.Dialog.show(Dialog.java:241)

Я предполагаю, что это потому, что я пытаюсь вызвать диалог из WallpaperService, а не из Activity. Переопределение метода onTouchEvent для WallpaperService.Engine дает тот же результат.

Значит ли это, что мне нужно развернуть отдельное действие для размещения диалога? Или запуск диалога с живых обоев невозможен?

1 Ответ

1 голос
/ 02 декабря 2010

Значит ли это, что мне нужно развернуть отдельное действие для размещения диалога?

Да. Или, что еще лучше, используйте занятие на тему диалога.

Лично, если вы ожидаете сделать это для целых живых обоев, я ожидаю, что вы получите целую кучу однозвездных рейтингов на Маркете, так как я подозреваю, что пользователи будут раздражены, когда ваша активность / диалог будет появляться только потому, что они неправильно нажали на главном экране.

...