Android应用程序在Calender.getInstance上没有响应 [英] Android app not responding at Calender.getInstance

查看:81
本文介绍了Android应用程序在Calender.getInstance上没有响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试获取日期进行计算。为此,我正在使用 Calendar cal = Calendar.getInstance(); 我正在使用此导入 import java.util.Calendar; 当应用程序转到 onResume 时,我正在调用一个方法。在该方法中,第一行正在获取Instance()。但是由于某种原因,我遇到了此错误(ANR)。

I am trying to get date doing calculations. For that I'm using Calendar cal = Calendar.getInstance();I am using this import import java.util.Calendar; When the app comes to onResume I am calling a method. In that method, the first line is getting Instance(). But for some reason, I am getting this error(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 };
    }
    }

}

这些是我调用的两种方法。

These are the two methods i call. what is wrong?

推荐答案

为什么不尝试:

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

    @Override
    protected void onCreate(Bundle savedInstanceState) {

    }
}

编辑:
我认为您正在使用:

I think you're using:

import java.util.GregorianCalendar;

您尝试(添加或)而不是:

You try (add or) instead of:

import java.util.Calendar;

致谢

这篇关于Android应用程序在Calender.getInstance上没有响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆