Служба намерения Getaction и Getextra вернуть ноль - PullRequest
0 голосов
/ 23 марта 2020

У меня действительно очень плохая проблема. У меня есть одна служба уведомлений, которая работает нормально, когда я тестирую, она работает нормально, я выключаю / включаю 10 раз, чтобы увидеть, если служба не работает или возвращает ноль, но она работает нормально, я также закрываю приложение много раз. чтобы увидеть, если его возвращаемое значение равно нулю, но работает нормально. но иногда, когда я ежедневно использую свое телефонное приложение, показывайте принудительное закрытие, например, когда я использую другие приложения, cra sh система firebase говорит, что getaction или намерение равно нулю. Пожалуйста, помогите мне, что я делаю не так

cra sh система enter image description here

enter image description here

это мой сервисный код:

 @Override
public int onStartCommand(Intent intent, int flags, int startId) {
    sp = getSharedPreferences("accdata", Context.MODE_PRIVATE);
    namesaveget = sp.getString("nameacc","No Account");
    int getwhattodo = intent.getIntExtra("service_call",0);
    if (intent == null || intent.getAction() == null || getwhattodo == 0) {
        Log.e("receiver","service faild");
        Crashlytics.log("service faild to call");
        if (getwhattodo == 0) {
            stopSelf();
        }

    }
    if (intent != null && getwhattodo == 2) {
        Log.e("receiver","call done");
        createNotificationChannel();
        showMainNotification();
        showSubNotifications();
        Crashlytics.log("service call noti");
    }


    return START_STICKY;

}

это мой приемник, который вызывает мой сервис:

 @Override
public void onReceive(Context context, Intent intent) {
    Log.e("receiver","work");

    if (isNetworkConnected(context) == true) {


            Log.e("receiver","wifi on");
            Intent i = new Intent(context,ServiceNotifications.class);
            i.putExtra("service_call",2);
            context.startService(i);




    } else {
        Log.e("receiver","wifi off");
    }



}

public static boolean isNetworkConnected(Context c) {
    ConnectivityManager connectivityManager =
            (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

я также устал: использовать сервис start_stick, он не будет работать. я пытаюсь использовать intent extra int вместо getaction, но это тоже не сработало.

, поэтому любое решение для этого, что я делаю неправильно.

1 Ответ

0 голосов
/ 23 марта 2020

, если вы не уверены, является ли намерение пустым или нет, но все же вы делаете вызов, просто переместите int getwhattodo = intent.getIntExtra ("service_call", 0); позвоните внутри своего нулевого чека

int getwhattodo = intent.getIntExtra("service_call",0);
    if (intent == null || intent.getAction() == null || getwhattodo == 0) {
        Log.e("receiver","service faild");
        Crashlytics.log("service faild to call");
        if (getwhattodo == 0) {
            stopSelf();
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...