package com.sxjs.common.widget;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.provider.Settings;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import com.sxjs.common.R;
/**
* @author:admin on 2017/4/11 17:26.
*/
public class NoNetWorkNotice {
private WindowManager wdm;
private View mView;
private WindowManager.LayoutParams params;
private boolean isShowing;
private NoNetWorkNotice(final Activity context){
wdm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
mView = View.inflate(context, R.layout.no_net_worke_layout , null);
mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Settings.ACTION_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.getApplicationContext().startActivity(intent);
}
});
//设置LayoutParams(全局变量)相关参数
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP;
}
public static NoNetWorkNotice getInstance(Activity context){
return context == null ? null : new NoNetWorkNotice(context);
}
public void show(){
isShowing = true;
wdm.addView(mView, params);
}
public void cancel(){
isShowing = false;
//wdm.removeView(mView); //此句依然会导致MainActivity退出时导致泄漏窗体 所以使用下一句
wdm.removeViewImmediate(mView);
mView = null;
}
public boolean isShowing() {
return isShowing;
}
}