2014-09-28 5 views
0

У меня есть приемник сигнала, который работает в mainActivity каждый день в определенное время каждый день:изменения TextView из другого класса выходит из строя все

public void scheduleAlarm() 
{ 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(System.currentTimeMillis()); 
    calendar.set(Calendar.HOUR_OF_DAY, 16); 
    calendar.set(Calendar.MINUTE, 25); 
    Intent intentAlarm = new Intent(this, AlarmReceiver.class); 
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), PendingIntent.getBroadcast(this,1, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT)); 
} 

в другом классе под названием alarmReceiver я пытаюсь изменить контекст TextView, но он выходит из строя. ..

public class AlarmReceiver extends BroadcastReceiver { 
NotificationCompat.Builder mBuilder; 

@Override 
public void onReceive(Context context, Intent intent) { 
    TextView black; 

    black = (TextView) ((Activity)context).findViewById(R.id.BlackCounterDisplay); 
    black.setText("toto"); 
} 

}

не могу найти, почему ...

ответ

0

Если вы look at your stack trace, вы должны увидеть ClassCastException, так как Context передано onReceive() не является Activity.

+0

Действительно ли я вижу ClassCastException, так что у вас есть идеи о том, как я могу решить эту проблему? – lguenier

+0

@lguenier: Непонятно, почему вы думаете, что каждый день вы будете работать в 16:25, не говоря уже о том, что обновление этого действия является правильным ответом на это событие AlarmManager. Следовательно, я не могу дать вам много советов. – CommonsWare

+0

ну, мне нужно каждый день в 16:25, чтобы сбросить счетчик до нуля ... – lguenier

0

вы делаете глобальную переменную, вы должны проверить внутри основной деятельности и установить его на истинный внутри OnReceive() затем на основной деятельности изменить текст но becarefull если вы хотите один тревоги или период тревоги

Смежные вопросы