Приложение Android не отвечает на Calender.getInstance

Я пытаюсь получить дату, выполняя расчеты. Для этого я использую Calendar cal = Calendar.getInstance();Я использую этот импорт import java.util.Calendar; Когда приложение доходит до onResume, я вызываю метод. В этом методе первая строка получает Instance(). Но по какой-то причине я получаю эту ошибку (ANR).

    at java.util.Calendar.getInstance(Calendar.java:960)
    at java.util.GregorianCalendar.<init>(GregorianCalendar.java:231)
    at java.util.GregorianCalendar.<init>(GregorianCalendar.java:330)
    at java.util.Calendar.<init>(Calendar.java:718)
    at java.util.Calendar.<init>(Calendar.java:712)   
Caused by: com.github.anrwatchdog.ANRError$$$_Thread: main  
Caused by: com.github.anrwatchdog.ANRError: Application Not Responding
    at com.github.anrwatchdog.ANRWatchDog.void run()(SourceFile:212)
    at com.splunk.mint.Mint$3.void onAppNotResponding(com.github.anrwatchdog.ANRError)(SourceFile:297)
java.lang.Exception: com.github.anrwatchdog.ANRError: Application Not Responding

ИЗМЕНИТЬ (добавление кода по запросу)

public static int getCategory(final String time) {
    long thenTime = SDKUtils.getLong(getLongValue(time));
    Calendar c1 = Calendar.getInstance(); // today
    Calendar c2 = Calendar.getInstance();
    c2.setTime(new Date(thenTime)); // your date
    if (c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR) && c1.get(Calendar.DAY_OF_YEAR) == c2.get(Calendar.DAY_OF_YEAR))
        return TODAY;
    c1.add(Calendar.DAY_OF_YEAR, -1); // yesterday

    if (c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR) && c1.get(Calendar.DAY_OF_YEAR) == c2.get(Calendar.DAY_OF_YEAR))
        return YESTERDAY;
    c1 = Calendar.getInstance();
    if (c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR) )
        return MONTH;
    else
        return YEAR;

}

public static String[] getSubTime(final String time, final int category) {

    Calendar cal = Calendar.getInstance();
    Date date = new Date(SDKUtils.getLong(getLongValue(time)));
    TimeZone tz = TimeZone.getDefault();
    cal.setTime(date);
    cal.setTimeZone(tz);
    int hour = cal.get(Calendar.HOUR_OF_DAY);
    if (hour > 12)
        hour = hour - 12;
    int min = cal.get(Calendar.MINUTE);
    String hourStr = hour < 10 ? "0" + hour : "" + hour;
    String minStr = min < 10 ? "0" + min : "" + min;
    String am = cal.get(Calendar.HOUR_OF_DAY) < 12 ? " AM" : " PM";
    switch (category) {
    case TODAY:
    case YESTERDAY: {
        return new String[] { hourStr + ":" + minStr + "", am };

    }
    case MONTH: {
        int date_ = cal.get(Calendar.DAY_OF_MONTH);
        String dateString = date_ < 10 ? "0" + date_ : date_ + "";
        return new String[] { dateString, hourStr + ":" + minStr + "" + am };

    }
    case DATE: {
        int date_ = cal.get(Calendar.DAY_OF_MONTH);
        String dateString = date_ < 10 ? "0" + date_ : date_ + "";
        return new String[] { dateString, hourStr + ":" + minStr + "" + am };
    }
    default: {
        String month = convertNumberToMonthMMM(cal.get(Calendar.MONTH));
        int date_ = cal.get(Calendar.DAY_OF_MONTH);
        String dateString = date_ < 10 ? "0" + date_ : date_ + "";
        return new String[] { month + " " + dateString, ", " + hourStr + ":" + minStr + "" + am };
    }
    }

}

Это два метода, которые я вызываю. что случилось?


person anvesh boddupalli    schedule 28.03.2018    source источник
comment
не могли бы вы поделиться своим кодом.   -  person PRIYA PARASHAR    schedule 28.03.2018
comment
не могли бы вы добавить свой код onResume   -  person Amjad Khan    schedule 28.03.2018
comment
Как и просили, я добавил код. Перед этим я вызываю базу данных и системную службу. это немного длинный код   -  person anvesh boddupalli    schedule 28.03.2018
comment
У меня такая же проблема. Вы нашли решение?   -  person qkx    schedule 18.06.2019


Ответы (1)


Почему вы не пытаетесь:

public class MainActivity extends AppCompatActivity
{
    Calendar c = Calendar.getInstance();

    @Override
    protected void onCreate(Bundle savedInstanceState) {

    }
}

Изменить: я думаю, вы используете:

import java.util.GregorianCalendar;

Вы пытаетесь (добавить или) вместо:

import java.util.Calendar;

С Уважением

person chaunv    schedule 28.03.2018
comment
Я не думаю, что место, куда я звоню, является проблемой. Я думаю, что проблема заключается в получении самого экземпляра. хотя я не уверен - person anvesh boddupalli; 28.03.2018
comment
Спасибо за ответ. Я проверил свой код. Я использую «импорт java.util.Calendar;» - person anvesh boddupalli; 28.03.2018