本来想着用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. Android中bool的使用
  2. adb shell 基本命令
  3. 2018 I/O Android(安卓)详解
  4. Android(安卓)中的 LayoutInflater类
  5. Android(安卓)studio 添加依赖库的方法
  6. MVPVM框架 Android(安卓)DataBinding(零基础)
  7. Android开发者指南(7) —— App Install Location
  8. Android开发者指南(6) —— AIDL
  9. 泰泽(Tizen)与安卓(Android)之比较

随机推荐

  1. Android和设计模式:备忘录模式
  2. Android:规范命名,让合作更加愉快
  3. Android开发环境迁移到Android Stdio 3.5
  4. Android 高级UI
  5. [置顶] android 新浪微博客户端的表情功
  6. AndroidStudio Build过程解析
  7. Android方法数
  8. Android——内存篇:Android中5种最常见的
  9. android详细解释键盘和鼠标事件
  10. 为了获取下一个10亿用户,Google的布局其实