Gav*_*ler 2 android broadcastreceiver android-intent
我有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);
}
Run Code Online (Sandbox Code Playgroud)
你想要的标志是:
vukaniActivity.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
Run Code Online (Sandbox Code Playgroud)
此外,请确保您在UI线程上运行.
runOnUiThread(new Runnable(){
@Override
public void run(){
launchApp();
}
});
Run Code Online (Sandbox Code Playgroud)