2 csh 34 csh_34 于 2013.05.30 13:16 提问

应用程序在 count 和 dialog box上崩溃

我使用下面的代码:

public class MyCount extends CountDownTimer
   {
        public MyCount(long millisInFuture, long countDownInterval) 
        {
            super(millisInFuture, countDownInterval);
        }
        @Override
        public void onFinish() 
        {
             displayAlertForRestart();
        }
        @Override
        public void onTick(long millisUntilFinished) 
        {
            counter.setText("Time Left: " + millisUntilFinished/1000 + " sec");
        }
     }
   public void displayAlertForRestart()
   {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setCancelable(true);
    builder.setMessage("Do you want to Restart?");
    builder.setTitle("Game Over");
    builder.setInverseBackgroundForced(true);
    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener()
    {
      public void onClick(DialogInterface dialog, int which) {

            Intent myIntent = new Intent(context,Level.class);
            startActivity(myIntent);
            dialog.dismiss();
            finish();
      }  
    });
    builder.setNegativeButton("No", new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
        finish();
      }
    });
    AlertDialog alert = builder.create();
    alert.show();
   }

alert.show();处的 LogCat error:

36: E/AndroidRuntime(9829): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@43cf1e38 is not valid; is your activity running?

2个回答

xiaoyaovsxin
xiaoyaovsxin   2013.06.01 17:41
已采纳

AlertDialog.Builder builder = new AlertDialog.Builder(this);
这句话有问题,你应该在public MyCount(long millisInFuture, long countDownInterval)
加个Context,public MyCount(Context context,long millisInFuture, long countDownInterval)
然后再将context的值传给new AlertDialog.Builder(context);

wurenbi45
wurenbi45   2013.05.30 14:06

AlertDialog.Builder builder = new AlertDialog.Builder(this);
参数应该是一个activity的引用.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
演示文稿文档
This dialog box appears when the New or Modify buttons are selected in the Topic Definition dialog box. This dialog box is used to define the settings for the topic name. For details on an item in this dialog box, click on it in the example below:
Qt工作笔记-QDialogButtonBox的使用
界面图如下:关联的时候可以使用2种方法:一种是:另一种是:
教你如何做到显示 Dialog Box(对话框)
原文地址:http://game.chinaitlab.com/freshmen/27810.html前面介绍的 Debug Message(调试信息) 太简单,不能显示为通常的窗口形式。下面我们用资源编辑工具制作 Dialog Box(对话框),把它显示成窗口形式。    1. 用上回学过的方法新建一个空白工程,命名为 "Dialog" 。  然后打开 Dialog 文件夹,可以看见里面自动
MFC中CDialog 关闭取消时 程序会崩溃的原因
背景:在一个左树右表的框架里对左树的右键添加了响应事件,可以弹出一个添加的窗口。关于这个CDialog的关闭崩溃进行了各种调整。 现象是无论是点击取消还是点击红叉,结果都是崩溃。 最后一步步debug发现,问题不在OnCancel函数中,而是在DoModal函数中,这个函数我在调用了父类Cdialog函数的domodal()之后 添加了一句update(true); 因为关闭窗口之后 系统会
关于Android中Dialog show跟dismiss时出现crash的解决办法
最近在做项目的时候,越来越多的开发者反馈
安装Glass Box代理程序
安装玻璃盒代理程序 目前版本的玻璃代理程序主要支持主流 Java EE 应用程序服务器(如 JBoss,Tomcat,WebLogic 和 WebSphere)。玻璃盒代理程序可以自动化安装,但考虑到 Java EE 应用服务器的配置通常较为复杂,为支持客户手工部署需求,玻璃盒代理程序也可以手动安装。AppScan 的用户手册中有详细的解释和示例。简而言之,玻璃盒代理程序安装主要包括 J
Activity 里面点击弹出Dialog ,第二次进入点击崩溃!
在android里面在写点击弹出Dialog 的时候不要写成静态的(static),要不会报  android.view.WindowManager$BadTokenException; Unable to add window -- token android.os.BinderProxy@42a19508 is not valid; is your activity running
Android 崩溃异常时弹出Dialog让用户选择是否上传错误信息
想必凡是使用安卓手机的童鞋们都碰到过这样的情况,不知道是内存还是什么的原因,弹出个提示框,某某应用已终止,对这类的应用,我们会没来由的觉得烦躁,严重点就会删除,所以作为程序员,我们在开发应用的时候,可以选择通过让用户选择是否上传错误信息,来增加交互不显得那么生硬,另外,就是因为不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,能及时获取在该设备上导致崩溃的信息,这对于下一个版
Android中发送网络请求,弹出Dialog崩溃问题解决
现象: Activity 在 onCreate 时候,发送异步 http 请求。Http 请求会回调三种方法:onStart,onFinish,onCancel。 我在 onStart 中弹出Dialog,Dialog需要参数 Context,于是用当前 Activity。 但是,App退出,再次打开,于是崩溃了! 分析原因: 查看日志,分析原因,是这样的: 1、App退出时候,应没有
Android6.0以后,在BroadcastReceiver中启动AlertDialog导致程序停止运行的问题及解决办法
Android6.0以后,在BroadcastReceiver中启动AlertDialog导致程序停止运行的问题及解决办法 You need to use a Theme.AppCompat theme(or descendant) with this activity