2017-07-22 3 views
0

ok nicht sicher, warum es nicht funktioniert jetzt. einen Dienst mit einem Countdown-Timer ausführen. Die App stürzt jetzt jedes Mal ab und sagt, dass Intent.putExtra null ist, wenn es nicht ist.
hier ist die ServiceklasseNull-Zeiger auf intent.putextra

@Override 
public void onCreate() { 
    super.onCreate(); 

    stopNotify(); 

    Log.i(TAG, "Starting timer..."); 

    cdt = new CountDownTimer(900000, 1000) { 
     @Override 
     public void onTick(long millisUntilFinished) { 



      Log.i(TAG, "Countdown seconds remaining: " + millisUntilFinished/1000); 
      bi.putExtra("countdown", millisUntilFinished); 
      sendBroadcast(bi); 
     } 

     @Override 
     public void onFinish() { 
      Log.i(TAG, "Timer finished"); 

      showNotification(); 

      savepref(); 



      Intent intent = new Intent(BroadcastService.this, MainActivity.class); 


      intent.putExtra("id1",id1); 

      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 


      startActivity(intent); 





     } 
    }; 

    cdt.start(); 
} 



@Override 
public IBinder onBind(Intent intent) { 

    return null; 
} @Override 
public int onStartCommand(Intent intent, int flags, int startId) { 

    return START_STICKY; 
} 





@Override 
public void onDestroy() { 
    cdt.cancel(); 
    Log.i(TAG, "Timer cancelled"); 
    super.onDestroy(); 
} 

und hier ist der Rundfunkempfänger, wie gut und alles andere relevant:

private BroadcastReceiver br = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getExtras() != null) { 

      long millisUntilFinished = intent.getLongExtra("countdown", 0); 
      String secs = String.valueOf(intent.getLongExtra("countdown", 0)); 
      Log.i(TAG, "Countdown seconds remaining: " + millisUntilFinished/1000); 
       tv.setText(secs); 
     } 
     } 

}; 

hier ist die Katze Protokolldatei als auch

07-22 13:57:27.337 17515-17515/com.apksrc.loot E/AndroidRuntime: FATAL EXCEPTION: main 
                  Process: com.apksrc.loot, PID: 17515 
                  java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Intent android.content.Intent.putExtra(java.lang.String, long)' on a null object reference 
                   at com.apksrc.loot.BroadcastService$1.onTick(BroadcastService.java:77) 
                   at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:133) 
                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                   at android.os.Looper.loop(Looper.java:154) 
                   at android.app.ActivityThread.main(ActivityThread.java:6836) 
                   at java.lang.reflect.Method.invoke(Native Method) 
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 

Antwort

1

Hier die Ursache. Haben Sie definieren die bi:

bi.putExtra("countdown", millisUntilFinished); 
+0

Nö Lebensretter .... fühle mich wie ein derp –

+0

ok, so dass es jetzt läuft es ist einfach nicht das Textview-Aktualisierung –

+0

die Textview? – santalu