实现DialogFragments以警告从BroadcastReceiver运行的对话框

时间:2015-11-04 18:29:08

标签: android broadcastreceiver alertdialog android-dialogfragment

我试图了解如何使用对话框片段从广播接收器运行警报对话框,模拟吐司按摩。

然而,下面的警报对话框运行良好,但每次通过停止视频播放和关闭键盘等来自广播接收器的警报对话框呼叫时,它都会中断用户

我尝试使用片段并从广播接收器调用show()方法,但最终没有任何结果。

下面是我使用的警报对话框活动:

public class Alertactivity  extends Activity {

    @SuppressWarnings("ResourceType")
    @Override
public void onCreate(Bundle savedInstanceState) {

    setTheme(R.style.Theme_Transparent);
    super.onCreate(savedInstanceState);
        String mynames[] = { };

        int rando = (int) (Math.random() * xx);

        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        final AlertDialog alertDialog = builder.create();

                alertDialog.getWindow().setLayout(600, 400);

        LayoutInflater inflater = alertDialog.getLayoutInflater();

        int k = (int) (Math.random() * 5);

        final View dialoglayout = inflater.inflate(new int[]{R.layout.mycustom_toast, R.layout.mycustom_toastx, R.layout.mycustom_toastx1, R.layout.mycustom_toastx2, R.layout.mycustom_toastx3}[k], null);

        Object localObject2;

        localObject2 = (TextView) ((View) dialoglayout).findViewById(R.id.toastText);
        ((TextView) localObject2).setText(mynames[rando]);

        (alertDialog).setView((View) dialoglayout);
        alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));


        WindowManager.LayoutParams wlp = alertDialog.getWindow().getAttributes();


    Window window = alertDialog.getWindow();


        int j = (int) (Math.random() * 8);
        wlp.gravity = new int[]{Gravity.CENTER, Gravity.LEFT, Gravity.RIGHT, Gravity.BOTTOM, Gravity.TOP, Gravity.TOP, Gravity.CENTER_HORIZONTAL, Gravity.CENTER_VERTICAL}[j];

        wlp.dimAmount = 0.0f;
        alertDialog.show();
    this.setFinishOnTouchOutside(true);

                   dialoglayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Alertactivity.this.finish();
            }
        });

        alertDialog.setOnDismissListener(new OnDismissListener() {

            @Override
            public void onDismiss(DialogInterface dialoglayout) {

                Alertactivity.this.finish();

            }
        });


        Timer mTimer = new Timer();
        mTimer.schedule(new TimerTask() {

            public void run() {

                Alertactivity.this.finish();
            }
        }, 10000);


   }

}

每次都从广播接收器调用活动:

 Intent startIntent = new Intent(paramContext, Alertactivity.class);
            startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            paramContext.startActivity(startIntent); 

我需要做的是将此警报实施到警报对话框片段,以避免中断用户并弯曲任何视频播放或“如果用户正在键入”而关闭键盘等等

0 个答案:

没有答案