我想打开一个对话框,并在实时壁纸拍摄时,上面有一些简单的信息。在Android Live墙纸中覆盖Oncommand,并在Android文档中直接添加一个自定义对话框(没有显示Layout 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)

我假设这是因为我试图从壁纸服务中提高对话框,而不是从活动中提出对话框。覆盖壁纸服务。

这是否意味着我需要旋转单独的活动来托管对话框?还是无法从实时壁纸触发对话框?

有帮助吗?

解决方案

这是否意味着我需要旋转单独的活动来托管对话框?

是的。或者,更好的是,使用以对话为主题的活动。

就个人而言,如果您期望为您的整个实时壁纸做到这一点,我希望您会在市场上获得一大堆一星级评级,因为我怀疑当您的活动/对话框不断弹出时,用户会感到恼火他们在主屏幕上误会了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top