小编Fir*_*ass的帖子

Intent始终为null onStartCommand

我有以下代码

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    if(intent != null) {
        Log.i("INTENT", intent.getAction().toString());
    }
    return START_STICKY;
}
Run Code Online (Sandbox Code Playgroud)

但它总是在线返回NullPointerException:

Log.i("INTENT", intent.getAction().toString());
Run Code Online (Sandbox Code Playgroud)

为什么?如果"intent"变量不为null,我正在检查上面.如果是这种情况,请执行以下代码.但我仍然有nullpointerexception.

服务从以下活动开始:

startService(new Intent(this, MainService.class));
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

service android android-intent android-activity

5
推荐指数
1
解决办法
6112
查看次数

while循环中的StringIndexOutOfBoundsException

我有这个代码:

String input = JOptionPane.showInputDialog("Enter text");
StringBuilder forward = new StringBuilder("");
StringBuilder backward = new StringBuilder("");
int f = 0;
int b = input.length();


while(f < input.length()) {

    while(input.charAt(f) > 63) {

        forward.append(input.charAt(f));
        f++;

    }

    f++;
} 

System.out.println(forward);
Run Code Online (Sandbox Code Playgroud)

虽然程序没有完成,但它已经抛出异常了.它说:

线程"main"中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:5(范围取决于我输入的字符数)java.lang.String.charAt(未知来源)

奇怪的是,我昨天研究过类似的代码而且工作得很好,而且实用性也一样.

我已经搜索了堆栈论坛和文档oracle但我只发现当索引等于字符串的大小时(对于charAt方法)抛出此异常.

所以这似乎仍然是问题,但我找不到它.

while(input.charAt(f) > 63)
Run Code Online (Sandbox Code Playgroud)

编辑:

为什么那段代码不起作用?它再次抛出与上面相同的异常?

while(b > 0) {

        if(input.charAt(b) > 63) {

            backward.append(input.charAt(b));

        }

        b--;
    }
Run Code Online (Sandbox Code Playgroud)

java while-loop

0
推荐指数
1
解决办法
130
查看次数