簡體   English   中英

Chathead的后台服務不適用於小米MI4I android

[英]Background service for Chathead is not Working in Xiaomi MI4I android

你好,我無法理解為什么我的聊天圖像只顯示在小米設備上的屏幕上

它在所有設備中都運行得非常好小米MI4這里是我的服務

public class CheckInService extends Service {
private int x_init_cord, y_init_cord, x_init_margin, y_init_margin;
private WindowManager windowManager;
private ImageView chatHead;
WindowManager.LayoutParams params;
boolean mHasDoubleClicked = false;
long lastPressTime;
private Boolean _enable = true;
@Override
public void onCreate() {
    super.onCreate();

    windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

    Display display = windowManager.getDefaultDisplay();
    int width = display.getWidth();
    int height = display.getHeight();
    Log.e("hiet", ""+height);
    chatHead = new ImageView(this);

    chatHead.setImageResource(R.drawable.face1);
    final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_PHONE,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);

    params.gravity = Gravity.BOTTOM | Gravity.RIGHT;
    params.x = 10;
    params.y = 25;

    windowManager.addView(chatHead, params);

    /*try {
        chatHead.setOnTouchListener(new View.OnTouchListener() {
            private WindowManager.LayoutParams paramsF = params;
            private int initialX;
            private int initialY;
            private float initialTouchX;
            private float initialTouchY;

            @Override public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:

                    // Get current time in nano seconds.
                    long pressTime = System.currentTimeMillis();


                    // If double click...
                    if (pressTime - lastPressTime <= 300) {

                        mHasDoubleClicked = true;
                    }
                    else {     // If not double click....
                        mHasDoubleClicked = false;
                    }
                    lastPressTime = pressTime; 
                    initialX = paramsF.x;
                    initialY = paramsF.y;
                    initialTouchX = event.getRawX();
                    initialTouchY = event.getRawY();
                    break;
                case MotionEvent.ACTION_UP:
                    break;
                case MotionEvent.ACTION_MOVE:
                    paramsF.x = initialX + (int) (event.getRawX() - initialTouchX);
                    paramsF.y = initialY + (int) (event.getRawY() - initialTouchY);
                    windowManager.updateViewLayout(chatHead, paramsF);
                    break;
                }
                return false;
            }
        });
    } catch (Exception e) {
        // TODO: handle exception
    }*/

    chatHead.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Log.e("Clickr", "Clickr");
            //              Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            //              intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            //              getApplicationContext().startActivity(intent);
        }
    });

}
private void chathead_click(){
    Log.e("Clickr", "Clickr");

}
@Override
public void onDestroy() {
    super.onDestroy();
    if (chatHead != null)
        windowManager.removeView(chatHead);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    try {

    } catch (Exception e) {
        e.printStackTrace();
    }
    return super.START_STICKY;
}


@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}

}

我已經在Manifest文件中添加了

<!-- Check In Service -->
        <service android:name=".CheckInService" 
            android:exported="true">
        </service>

你能告訴我為什么服務不起作用在小米MI4I

小米在其安全應用程序下提供“自動啟動”選項。 您必須手動將此選項切換為ON。 除非這樣做,否則您的應用程序將無法執行任何后台任務,如果它被殺死,您將無法執行簡單的后台操作,如獲取推送通知,更新位置等。此選項可以重新啟動服務以防萬一他們在后台被殺。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM