2013-04-23 160 views
1

我有一个AlarmManager在我的MainActivity用来检查一个网站,如果某些条件,则创建一个通知。AlarmManager膨胀布局

的AlarmManger使用未决意图>在一个单独的类广播接收器。该广播接收器类然后调用第三个活动,执行代码来检查网站并处理结果,所有这些在应用程序未打开时在后台进行。

的问题是,当报警事件触发它实际上打开应用程序的主布局。我没有专门创建或膨胀此布局,但在MainActivity中。

我认为,当我的广播接收器调用新意图的问题被引起的。我认为FLAG_ACTIVITY_NEW_TASK是导致布局打开的原因。我没有在清单中指定任何特殊的启动模式,所以我不认为这可能是问题所在。

我的问题是,有没有适合我的方式来启动这个意图在从广播接收机的背景,而不会触发布局显示?我可以在清单中添加不同的标志或其他东西吗?

package alert.wow.onlinealert; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.widget.Toast; 

public class AlarmReceiver1 extends BroadcastReceiver { 

@Override 
public void onReceive(final Context context, final Intent intent) { 
System.out.println("Timed Signal received by AlarmReceiver"); 
    try { 

Intent intent1 = new Intent(context, Jrequest.class); 
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(intent1);  
    } catch (Exception e) { 
    System.out.println(e.toString()); 

    } 
    } 
} 

这里的最终目标是让AlarmReceiver在一小时一次后台静默运行,然后,如果满足准则发送通知,应用程序本身应该很少需要打开。

我会很高兴,如果它有利于后期更多的代码。

谢谢, 克里斯

+0

阅读'Service' – gauravsapiens 2013-04-23 07:35:21

+1

的http://开发商。 android.com/guide/components/services.html – gauravsapiens 2013-04-23 07:37:42

回答

0

使用服务,而不是活动,这里是一个由马克·墨菲工作example

希望这有助于亚龙

+0

感谢您的链接!我对这一切都很陌生。你能否为这些java文件提供一些上下文?我认为我需要全部使用它们,因为它们似乎彼此链接,但我不确定每个服务的目的究竟是什么,或者我最初跳入哪个目的。此外,在使用这些服务时,即使电话处于睡眠状态,服务仍会继续执行,或者进程是否会等待并在唤醒后运行? – Chris2222000 2013-04-23 07:59:05

+0

这里是一个[链接](https://github.com/commonsguy/cw-advandroid/tree/master/SystemServices/Alarm)到完整的项目,您可以下载,然后导入到Eclipse。 – 2013-04-27 05:31:44