我在我的AlarmManager类中设置了MainActivity。
一个名为AlarmReceiver的类在每一组时间间隔上都会被激发。
当那个类被激发时,我必须执行一个操作。该代码位于另一个类Parsing.java中。
现在在AlarmReceiver.java,,我正在做这样的事情:
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Parsing obj = new Parsing(context);
obj.execute();
}
}我不能直接用AlarmReceiver.java编写代码,因为AlarmReceiver.java已经在扩展BroadcastReceiver,而我的代码(即Parsing.java )正在扩展另一个类。
因此,我正在为Parsing类创建一个对象,并调用该方法。
我的方法正确吗?
如果需要的话,我会提供进一步的资料。请告诉我我的方法是否正确?提前感谢!
编辑:
Parsing.java
public class Parsing extends AsyncTask<Void, Void, Void> {
//some code
}发布于 2015-03-02 10:36:13
我不知道你是怎么写你的Parsing.java的,它看起来不错,但请记住
此方法总是在其进程的主线程中调用,除非您使用registerReceiver显式要求将它调度在另一个线程上。当它在主线程上运行时,您不应该在其中执行长时间运行的操作(在考虑接收方被阻塞和候选人被杀死之前,系统允许的超时时间为10秒)。不能在onReceive()的实现中启动弹出对话框
对我来说,我认为更好的处理方法是在onReceive方法中调用另一个服务,如下所示
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, ParsingService.class);
context.startService(i);
}https://stackoverflow.com/questions/28806834
复制相似问题