zoukankan      html  css  js  c++  java
  • Android 定时重复启动弹出窗口。

    本来想着用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);

                }

            }

        }

    }

    life is a jounery,yes
  • 相关阅读:
    个人作业——软件评测
    结对第二次作业
    寒假作业(2/2)
    寒假作业(1/2)
    markdown整理
    我们一定会在人生的更高处相见的
    时间复杂度 分析 可能算法
    有关数学 结论 规律 题目 小结
    jzyz 题库 选做 及 知识小结
    隔板法
  • 原文地址:https://www.cnblogs.com/CaptainLin/p/3556565.html
Copyright © 2011-2022 走看看