我在Android中使用一项服务,该服务在一段时间后启动一项活动。 这是我的代码:
Intent intent = new Intent(this, PopupActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
问题是,如果我的应用程序在后台运行(暂停),并且服务启动PopupActivity,则后台运行的应用程序也会启动。 我不想要这种行为,有没有办法禁用它,以便只显示我的PopupActivity?
答案 0 :(得分:0)
使用变量来定义您的应用是否已“暂停”以避免启动活动
private boolean isPaused = false;
如果您的应用暂停,则isPaused = true;
@Override
protected void onPause(){
isPaused = true;
super.onPause();
}
如果您的应用执行onResume()
方法,则isPaused = false;
@Override
protected void onResume(){
isPaused = false;
super.onResume();
}
评估isPaused是否为false然后启动de activity
if(!isPaused){
Intent intent = new Intent(this, PopupActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}else{
Log.i("Activity", "Activity cannot started, app is onBackground");
}
答案 1 :(得分:0)
不,在Android中,所有构建组件(包括活动)都存在于应用程序上下文中,如果不启动应用程序上下文,就无法显示您的活动,这与Android的性质背道而驰,就像试图启动汽车一样没有启动引擎:P(想不出一个更好的例子),它没有任何意义......
问候!