Ошибка конструктора нуля аргумента в классе приемникаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка конструктора нуля аргумента в классе приемника

Сообщение Anonymous »

Я пишу приложение, которое будет реализовать запланированные тревоги, которые имеют проблемы в классе приемника. Метод вызовет другой метод в MainActivity . Это делается путем создания интерфейса и с пустым методом, так что OnReCeive () может вызвать метод одного и того же имени в MainActivity.
Наконец, метод onReceive () будет решать, будет ли отправлено уведомление в зависимости от результата метода из MainActivity , но в соответствии с IT -Scricing, но в соответствии с Its Ipt, но в соответствии с IT -Scricing, но в соответствии с IT -Scricing, но в соответствии с IT -Scrisif Its It's OT, но в соответствии с IT -Scricing. ошибка < /p>
Process: com.example.sahelper, PID: 5930
java.lang.RuntimeException: Unable to instantiate receiver com.example.sahelper.alarm.AlarmReceiver: java.lang.InstantiationException: java.lang.Class has no zero argument constructor

< /code>
вот мой MainActivity < /p>
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// AlarmController is used to schedule alarm
AlarmController alarmController =
new AlarmController(MainActivity.this, MainActivity.this);
alarmController.new_test_alarm(); // schedule an alarm
}

// This method is supposed to be called by interface
@Override
public void check_duty()
{
// Do something here...
// Do something here...
// Do something here...
}
< /code>
вот мой сигнал calmercontroller.java < /p>
// Constructor
public AlarmController(Activity activity, Context context)
{
this.myactivity = activity;
this.mycontext = context;
}

public void new_test_alarm()
{
// Some codes here...
// Some codes here...
// Some codes here...

Intent intent = new Intent(myactivity, AlarmReceiver.class);
intent.setAction(SECOND_DEADLINE_ALARM_RECEIVE_ACTION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
mycontext,
Integer.parseInt(it.getKey()), // Here is the noti_id
intent,
FLAG_MUTABLE);

AlarmManager alarmManager = (AlarmManager) myactivity.getSystemService
(Context.ALARM_SERVICE);
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,
(System.currentTimeMillis() + 10 * 1000),
pendingIntent);
}
< /code>
Вот мой интерфейс < /p>
public interface Receiver_MainActivity_Interface
{
public void check_duty();
}
< /code>
И, наконец, вот мой класс приемника < /p>
public class AlarmReceiver extends BroadcastReceiver
{
private Receiver_MainActivity_Interface mylistener;
public AlarmReceiver(Receiver_MainActivity_Interface listener)
{
this.mylistener = listener;
}

@Override
public void onReceive(Context context, Intent intent)
{
if (Objects.equals(intent.getAction(), SECOND_DEADLINE_ALARM_RECEIVE_ACTION))
{
mylistener.check_duty();

// And some codes here continue...
// And some codes here continue...
// And some codes here continue...
}
}
}
< /code>
Я подчиняю проблему, возникающая из «intent intent = new intent (myactivity, armereceiver.class);»; как параметр должен быть передан в класс AlarmeReceiver. Но как мне передать интерфейс как переменную, когда я определяю намерение? < /P>
Что мне сделать, чтобы решить проблему? Любое предложение приветствуется.
edit
я не могу и не думаю, что можно перемещать пустоту внутри MainActivity в класс On -receive, потому что эта пустота включает в себя некоторые элементы, объявленные (веб -обзор) в MainActivity.

Подробнее здесь: https://stackoverflow.com/questions/792 ... iver-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»