0
내 Android 앱에서 푸시 알림을 구현했습니다. 앱의 알림 메시지를 사용 중지해도 토스터 메시지가 사용 중지되는 경우 내 기기에서 문제가 발생합니다. 이것은 일반적인 현상입니까 아니면 무엇인가를 변경해야합니까? 어떻게 극복 할 수 있는지 알려주세요.알림을 사용하지 않으면 앱의 토스트 메시지도 사용 중지됩니다.
내 Android 앱에서 푸시 알림을 구현했습니다. 앱의 알림 메시지를 사용 중지해도 토스터 메시지가 사용 중지되는 경우 내 기기에서 문제가 발생합니다. 이것은 일반적인 현상입니까 아니면 무엇인가를 변경해야합니까? 어떻게 극복 할 수 있는지 알려주세요.알림을 사용하지 않으면 앱의 토스트 메시지도 사용 중지됩니다.
예, 보통 현상입니다 .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에 새로운 오전
.
기기 앱 설정에서 알림을 사용 중지 한 후에도 토스트 메시지를 표시 할 수있는 방법이 있습니까? – Nishith