java Android广播接收器出现错误
还有一个问题。试图使用广播接收器捕捉警报(警报管理器)
使用以下代码: 包裹通讯。桑科。上心宝。服务
import java.util.Calendar;
import 安卓.app.AlarmManager;
import 安卓.app.PendingIntent;
import 安卓.content.BroadcastReceiver;
import 安卓.content.Context;
import 安卓.content.Intent;
import 安卓.util.Log;
import 安卓.widget.Toast;
import com.suncco.shangxinbao.model.ScheduledSms;
public class SmsTimerService extends BroadcastReceiver {
public SmsTimerService(Context context, int timeoutInSeconds,
ScheduledSms sms) {
Intent myIntent = new Intent(context, SmsTimerService.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
sms.getRequestCodeForListener(), myIntent, 0);
AlarmManager alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 5); // should be timeoutInSeconds instead of 5
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
pendingIntent);
}
@Override
public void onReceive(Context context, Intent intent) {
Log.w("Karl", "yay");
}
在舱单上,我作为接收者写下:
<receiver
安卓:name="com.suncco.shangxinbao.service.SmsTimerService"
安卓:process=":remote" />
我把我的短信服务做成这样:
SmsTimerService smsTimerService = new SmsTimerService(this,5,sms);
这就是众所周知的错误
java.lang.RuntimeException: Unable to instantiate receiver
com.suncco.shangxinbao.service.SmsTimerService: java.lang.InstantiationException:
com.suncco.shangxinbao.service.SmsTimerService
# 1 楼答案
由于没有空构造函数,例如SmsTimerService(),因此出现无法实例化接收器错误。关键是,您需要一个空构造函数,以便在接收意图时创建此接收器如果不实现任何构造函数也没关系。然而,如果你实现一个带参数的构造函数,你还需要实现一个空的
所以你可以这样做。请注意,我没有研究在创建意图时您实际上想要做什么