2017-06-30 6 views
1

ボタンはonclickで変更されます。しかし、アラームマネージャが意図を停止しない、それはあなたが最初にアラームを作成するために使用されたテントでのアクションが欠落しているalarmManagerアラームマネージャがインテントサービスを呼び出すと、ボタンをクリックした後にキャンセルされますが、アラームマネージャは引き続きサービスをトリガーします。

if (flag) { 
    flag = false; 
    imageButton.setImageResource(R.drawable.mybuttonbc); 
    Intent intent = new Intent(HomeActivity.this, IntentServices.class); 
    intent.setAction("upload"); 
    intent.putExtra("lat", lats); 
    intent.putExtra("long", longs); 

    final PendingIntent pintent = PendingIntent.getService(HomeActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 60000, pintent); 
    Snackbar.make(getWindow().getDecorView().getRootView(), "recording started!", Snackbar.LENGTH_LONG) 
      .setAction("Action", null).show(); 

} else { 
    flag = true; 
    imagePanicButton.setImageResource(R.drawable.mybuttona); 
    Intent intent = new Intent(HomeActivity.this, IntentServices.class); 
    final PendingIntent pIntent = PendingIntent.getService(HomeActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    alarm.cancel(pIntent); 
    Snackbar.make(getWindow().getDecorView().getRootView(), "recording stopped!", Snackbar.LENGTH_LONG) 
      .setAction("Action", null).show(); 

} 
+0

とき、あなたは '「!録画が停止し、」'スナックバーを参照していますボタンをクリックしますか?基本的に、あなたはそれがそのコードに入っていると確信していますか? –

+0

はい録音が止まっているのを見ます –

+0

しかし、それは私にトーストの形で私に表示されるインテントコールを作り続けます –

答えて

0

をキャンセルするためにも、onclickので永遠に実行し続けます。だから、それは次のようになり

intent.setAction("upload"); 

だけでアラームをキャンセルし、コードに次の行を追加します

if (flag) { 
    flag = false; 
    imageButton.setImageResource(R.drawable.mybuttonbc); 
    Intent intent = new Intent(HomeActivity.this, IntentServices.class); 
    intent.setAction("upload"); 
    intent.putExtra("lat", lats); 
    intent.putExtra("long", longs); 

    final PendingIntent pintent = PendingIntent.getService(HomeActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 60000, pintent); 
    Snackbar.make(getWindow().getDecorView().getRootView(), "recording started!", Snackbar.LENGTH_LONG) 
      .setAction("Action", null).show(); 

} else { 
    flag = true; 
    imagePanicButton.setImageResource(R.drawable.mybuttona); 
    Intent intent = new Intent(HomeActivity.this, IntentServices.class); 
    intent.setAction("upload"); // <-Added 
    final PendingIntent pIntent = PendingIntent.getService(HomeActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    alarm.cancel(pIntent); 
    Snackbar.make(getWindow().getDecorView().getRootView(), "recording stopped!", Snackbar.LENGTH_LONG) 
      .setAction("Action", null).show(); 

} 
+0

ダニエルありがとう、マジックのように動作します、あなたは最高です、 –

関連する問題