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