本来想着用handlerpostdelay就可以实现,没想到演示后关闭应用居然报错。

后来想到是没有了activity。

((Activity)context).isFinishing()

可以传入context,再强转成activity。判断此acitvity是否存在,之后就可有去放心的弹出了。

通过sharedpreference判断是否购买。

public class MyDialog {
    static SharedPreferences myShare;
    public static boolean isShowing = false;

public static void showAlert(final Context context) {

myShare = context.getSharedPreferences("billingShared", 0x0002);
        if (!myShare.contains("isBilling")) {

Log.d("sharedpre", "sharedpreferce is created!!");
            SharedPreferences isBilling = context.getSharedPreferences(
                    "billingShared", 0x0002);
            Editor editor = isBilling.edit();
            editor.putBoolean("isEnable", true);
            editor.putBoolean("isBilling", false);
            editor.commit();
        }
        boolean isBilling = myShare.getBoolean("isBilling", false);
        boolean isEnable = myShare.getBoolean("isEnable", false);
        if (!isBilling || !isEnable) {
            Log.d("Mytest", "------>>>>>" + ((Activity) context).isFinishing());
            Log.d("Mytest", "------>>>>>" + isShowing);
            Log.d("Mytest", "------>>>>>" + ((Activity) context).toString());

if (!isShowing) {

new Handler().postDelayed(new Runnable() {

@Override
                    public void run() {
                        if (!((Activity) context).isFinishing()) {
                            Log.d("Mytest", "------>>>>>running");
                            Log.d("Mytest", "------>>>>>"
                                    + ((Activity) context).isFinishing());
                            new AlertDialog.Builder(context)
                                    .setMessage(
                                            "     请支持开发者,乐捐即能正常使用!!                            ")
                                    .setCancelable(false)
                                    .setPositiveButton("乐捐",
                                            new OnClickListener() {

@Override
                                                public void onClick(
                                                        DialogInterface dialog,
                                                        int which) {
                                                    boolean isBilling = true;
                                                    if (isBilling) {
                                                        Editor editor = myShare
                                                                .edit();
                                                        editor.putBoolean(
                                                                "isBilling",
                                                                isBilling);
                                                        editor.commit();
                                                        Toast.makeText(
                                                                context,
                                                                "乐捐成功。",
                                                                Toast.LENGTH_LONG)
                                                                .show();
                                                        dialog.dismiss();
                                                        isShowing = false;
                                                    } else {
                                                        Toast.makeText(
                                                                context,
                                                                "乐捐未成功",
                                                                Toast.LENGTH_SHORT)
                                                                .show();
                                                    }
                                                }
                                            })
                                    .setNegativeButton("取消",
                                            new OnClickListener() {

@Override
                                                public void onClick(
                                                        DialogInterface dialog,
                                                        int which) {
                                                    dialog.dismiss();
                                                    dialog.cancel();
                                                    isShowing = false;
                                                    MyDialog.showAlert(context);
                                                }
                                            }).show();
                            isShowing = true;
                        }
                    }
                }, 8000L);

}

}

}

}

最新文章

  1. SQL Server Profiler:使用方法和指标说明
  2. EF容器---代理类对象
  3. oracle 删除表、表空间、用户时,如何释放磁盘空间
  4. 【ASP.Net MVC】在AspNet Mvc使用Ajax
  5. ECLIPSE android 布局页面文件出错故障排除Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V
  6. 通过uiview动画来放大图片
  7. Linux文件系统结构
  8. SQL server 触发器、视图
  9. 一步一步重写 CodeIgniter 框架 (11) —— 使用 CodeIgniter 函数库
  10. 简单文本悬浮div提示效果
  11. 深度学习(PYTORCH)-2.python调用dlib提取人脸68个特征点
  12. oracle错误(ORA:12154 ORA:01034 和 ORA:27101 ORA-18008 ORA-01081)
  13. UVA11059-Maximum Product(动态规划)
  14. python中的argv使用
  15. BZOJ 2561 最小生成树 | 网络流 最小割
  16. Android 架构师技能图谱(转载)
  17. 采用alluxio提升MR job和Spark job性能的注意点
  18. linux环境下maven的安装配置
  19. php正则给图片提取/替换/添加alt标签的正则代码
  20. Web API 路由访问设置

热门文章

  1. c#开发的程序安装时动态指定windows服务名称
  2. matplotlib ----- 颜色, 标记样式
  3. c/c++指针详解(二)
  4. spring深入内容
  5. volatile浅析
  6. WebApi和Andriod对接上传和下载文件
  7. JAVA-Unit03: SQL(基础查询) 、 SQL(关联查询)
  8. linux安装oracle12c
  9. java代码------计算器
  10. 【UVA】201 Squares(模拟)