天天看點

仿app端彈出的微信電腦登陸

上班時間喜歡把微信挂在電腦上,掃碼,手機微信彈出電腦登陸,點選,登陸。(這裡值得一說的是無論微信是否顯示在目前頁面都可以彈出來,當然将微信kill掉就彈不出來了)

如圖

仿app端彈出的微信電腦登陸

以下demo模拟的是手機收到推送彈出對話框,使用者點選回到首頁面。

1、首先聲明dialog為系統級彈出,清單檔案中聲明

2、在接收推送的service中聲明dialog,我這裡模拟10秒鐘後收到推送

final Dialog dialog=new Dialog(this, R.style.MyDialogTheme);
        //此代碼說明該dialog屬于系統級彈窗
        dialog.getWindow().setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT));

        LayoutInflater inflater = LayoutInflater.from(this);
        View viewDialog = inflater.inflate(R.layout.dialog, null);
        DisplayMetrics dm = getResources().getDisplayMetrics();
        int screenWidth = dm.widthPixels;
        int screenHeight = dm.heightPixels;
        //設定dialog的寬高為螢幕的寬高
        ViewGroup.LayoutParams layoutParams = new  ViewGroup.LayoutParams(screenWidth, screenHeight);
        dialog.setContentView(viewDialog, layoutParams);

        Button button= (Button) viewDialog.findViewById(R.id.denglu);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainService.this, MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
                dialog.dismiss();
            }
        });

         new Thread() {
             public void run() {
                  SystemClock.sleep();
                  handler.post(new Runnable() {
                      @Override
                      public void run() {
                          dialog.show();
                          PXL.e("彈窗出來了");
                       }
                  });
             }
         }.start();
           

3、到此為止

其實就是系統級dialog的使用