我有Android的以下方案:我有一个应用程序,在启动时启动服务。该服务每30分钟检查一次网址。如果获得特定响应,它会发送应用程序接收并处理的广播。这种情况对我很有用。
我还希望我的服务在用户停止运行应用程序(app out of foreground)后继续运行。我已经开始工作了。
我面临的问题是当Activity收到广播消息时,我无法让Activity返回到前台。我已经尝试了各种意图组合,但还没有想出来。我做错了什么?
我的BroadcastReceiver代码如下所示:
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
launchApp();
}
};
private void launchApp() {
Intent vukaniActivity = new Intent(this, Vukani.class);
// I've tried multiple different flags to no avail.
vukaniActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(vukaniActivity);
}
答案 0 :(得分:6)
你想要的标志是:
vukaniActivity.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
另外,请确保您在UI线程上运行。
runOnUiThread(new Runnable(){
@Override
public void run(){
launchApp();
}
});