我不知道为什么我的Android应用程序崩溃了。我注意到它发生在我输入简单的firstTime变量时,但我老老实实地不知道为什么firstTime变量会导致整个应用程序崩溃。如果我拿出if语句,其他所有部分都有效。这是我到目前为止所提出的:
public class MainActivity extends Activity {
static int firstTime = 0;
BroadcastReceiver receiver = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
if(firstTime == 0){
logTime(false);
firstTime++;
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent arg1) {
if(arg1.getAction().equals(Intent.ACTION_SCREEN_OFF)){
logTime(true);
}
else if(arg1.getAction().equals(Intent.ACTION_SCREEN_ON)){
logTime(false);
}
}
};
registerReceiver(receiver, filter);
}
可能有人知道为什么firstTime变量会崩溃我的应用程序?谢谢!
答案 0 :(得分:2)
我之前没有想到这一点,我以为你只想增加int
,所以我没有考虑再次拨打logTime()
,并没有&#39看看它如何通过如此简单的概念崩溃。
您的问题大多数可能是订单,因为使用您当前的代码时,方法中的textView
将为null
,并且会在访问时抛出NPE。
这是因为findViewById()
中的logTime()
会返回null
(内容视图未设置 - 因此无法找到任何内容):
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(firstTime == 0){
logTime(false);
firstTime++;
}