Android AsyncTask中的甜蜜警报

Aitor Ramos Pajares

我试图把sweet alerthttps://github.com/pedant/sweet-alert-dialog库和它的作品完美,但不是在AsyncTask

我的onPostExcute:

protected void onPostExecute(String result) {

        super.onPostExecute(result);
        if(!Pattern.compile("0").matcher(msj).find())
        {
            Toast.makeText(ctx, "¡Ya tienes una reserva para este viaje!", Toast.LENGTH_SHORT).show();
        }else if(Pattern.compile("200").matcher(msj).find()) {
            SweetAlertDialog swt = new SweetAlertDialog(ctx, SweetAlertDialog.WARNING_TYPE)
                    .setTitleText("Todas las plazas ocupadas")
                    .setContentText("¿Desea entrar en la lista de espera? Será avisado en cuanto haya una plaza")
            .setCancelText("No")
            .setConfirmText("Si")
            .showCancelButton(true)
            .setCancelClickListener(new SweetAlertDialog.OnSweetClickListener() {
                @Override
                public void onClick(SweetAlertDialog sDialog) {
                    // reuse previous dialog instance, keep widget user state, reset them if you need
                    sDialog.cancel();
                    Toast.makeText(ctx, "Reserva no realizada", Toast.LENGTH_SHORT).show();

                }
            })
            .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
                @Override
                public void onClick(SweetAlertDialog sDialog) {
                sDialog.cancel();
                }
            });
    swt.show();
 }

ctx是aContextClass执行位置AsycTask,并将其作为参数发送。

和我的错误日志:

E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: ********, PID: 6563
    android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
            at android.view.ViewRootImpl.setView(ViewRootImpl.java:566)
            at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:272)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
            at android.app.Dialog.show(Dialog.java:298)
            at *************.RegisterApp.onPostExecute(RegisterApp.java:175)
            at *************.RegisterApp.onPostExecute(RegisterApp.java:40)
            at android.os.AsyncTask.finish(AsyncTask.java:632)
            at android.os.AsyncTask.access$600(AsyncTask.java:177)
            at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

ctx分配:

new RegisterApp(dialogReserva.this, gcm, getAppVersion(getApplicationContext()), String.valueOf(getIntent().getIntExtra("idviaje", 0)), userInput.getText().toString()).execute();

RegisterApp构造函数

public class RegisterApp extends AsyncTask<Void, Void, String> {


    private static final String TAG = "GCMRelated";
    Context ctx;
    String id_viaje;
    String msj;
    String tlf;
    GoogleCloudMessaging gcm;
    private int appVersion;

    public RegisterApp(Context ctx, GoogleCloudMessaging gcm, int appVersion, String id_viaje, String tlf){
        this.ctx = ctx;
        this.gcm = gcm;
        this.id_viaje=id_viaje;
        this.tlf=tlf;
        this.appVersion = appVersion;
    }
丹尼尔·纽金特(Daniel Nugent)

看来您的活动上下文可能为空,可能是由于活动被破坏了。

尝试使用getApplicationContext(),而不是dialogReserva.thisctx当你执行AsyncTask

new RegisterApp((getApplicationContext(), gcm, getAppVersion(getApplicationContext()), String.valueOf(getIntent().getIntExtra("idviaje", 0)), userInput.getText().toString()).execute();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从甜蜜警报对话框 Android 中删除“确定”按钮

来自分类Dev

更改甜蜜警报中的按钮样式

来自分类Dev

Android中的重复警报

来自分类Dev

Android:在AsyncTask中敬酒

来自分类Dev

AsyncTask中的Android AlertDialog

来自分类Dev

AsyncTask中的android动画

来自分类Dev

Android中AsyncTask的参数

来自分类Dev

关于Android中的AsyncTask

来自分类Dev

甜蜜的警报。在提醒框中显示倒计时

来自分类Dev

Android应用中的安全警报

来自分类Dev

警报未在Android中触发

来自分类Dev

Android中的短间隔警报

来自分类Dev

在Fragment android中实现AsyncTask

来自分类Dev

在Android中定期运行asynctask

来自分类Dev

在AsyncTask Android中读取文件

来自分类Dev

声明中的Android AsyncTask错误

来自分类Dev

声明中的Android AsyncTask错误

来自分类Dev

在片段android中实现AsyncTask

来自分类Dev

Android:AsyncTask中的setText(“ Loading ...”)

来自分类Dev

Android中的AsyncTask永远循环

来自分类Dev

android AsyncTask类中的NullPointerException

来自分类Dev

Android中的AsyncTask不会退出

来自分类Dev

Android 中 AsyncTask 的布尔返回

来自分类Dev

甜蜜警报不起作用

来自分类Dev

在Android中显示类似于菜单警报的警报

来自分类Dev

在Android 6.0中设置警报的精确方法

来自分类Dev

如何在Android中停止警报

来自分类Dev

Android:如何从预定警报中启动服务?

来自分类Dev

在Android中取消警报管理器