2016-09-27 98 views
0

在我的android應用程序中,我實現了推送通知。我的問題是從我的設備,如果我禁用通知消息的應用程序,即使吐司消息被禁用。這是通常的現象還是我需要改變任何東西?請讓我知道我該如何克服這一點。禁用通知也禁用應用程序的吐司消息

回答

1

是的,這是一種常見的現象。點擊here,但它是中文。希望這可以幫助你。

在這種情況下,需要自己寫一個吐司。我可以提供演示,但它不完整。您可以做一些修改,使其更好。

public class MToast { 
    private Context mContext; 
    private WindowManager wm; 
    private int mDuration; 
    private View mNextView; 
    public static final int LENGTH_SHORT = 1500; 
    public static final int LENGTH_LONG = 3000; 

public MToast(Context context) { 
    mContext = context.getApplicationContext(); 
    wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); 
} 

public static MToast makeText(Context context, CharSequence text, 
          int duration) { 
    MToast result = new MToast(context); 
    LayoutInflater inflate = (LayoutInflater) context 
      .getApplicationContext().getSystemService(
        Context.LAYOUT_INFLATER_SERVICE); 
    View v = inflate.inflate(R.layout.dialog_toast,null); 
    TextView tv = (TextView) v.findViewById(R.id.tvMsg); 
    tv.setText(text); 
    result.mNextView = v; 
    result.mDuration = duration; 
    return result; 
} 

public static MToast makeText(Context context, int resId, int duration) 
     throws Resources.NotFoundException { 
    return makeText(context, context.getResources().getText(resId), duration); 
} 

public void show() { 
    if (mNextView != null) { 
     WindowManager.LayoutParams params = new WindowManager.LayoutParams(); 
     params.gravity = Gravity.CENTER | Gravity.CENTER_HORIZONTAL; 
     params.height = WindowManager.LayoutParams.WRAP_CONTENT; 
     params.width = WindowManager.LayoutParams.WRAP_CONTENT; 
     params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE 
       | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE 
       | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; 
     params.format = PixelFormat.TRANSLUCENT; 
     params.y = dip2px(mContext, 64); 
     params.type = WindowManager.LayoutParams.TYPE_TOAST; 
     wm.addView(mNextView, params); 
     new Handler().postDelayed(new Runnable() { 

      @Override 
      public void run() { 
       if (mNextView != null) { 
        wm.removeView(mNextView); 
        mNextView = null; 
        wm = null; 
       } 
      } 
     }, mDuration); 
    } 
} 

/** 
* transfer dp into px 
* 
* @param context 
* @param dipValue 
* @return int 
*/ 
private int dip2px(Context context, float dipValue) { 
    final float scale = context.getResources().getDisplayMetrics().density; 
    return (int) (dipValue * scale + 0.5f); 
} 

}

這裏來佈局文件。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/waiting_bg" 
    android:layout_gravity="center" 
    android:gravity="center" 
    android:orientation="horizontal"> 
<TextView 
    android:id="@+id/tvMsg" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:textSize="15sp" 
    android:textColor="@color/mColor_white" 
    /> 

我新的markdown.Sorry的格式。

+0

即使禁用了設備應用程序設置的通知,我是否還有任何方法可以顯示敬酒消息? – Nishith