从服务开始活动

时间:2014-04-01 17:27:45

标签: android service android-activity

我在Android中使用一项服务,该服务在一段时间后启动一项活动。 这是我的代码:

Intent intent = new Intent(this, PopupActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

问题是,如果我的应用程序在后台运行(暂停),并且服务启动PopupActivity,则后台运行的应用程序也会启动。 我不想要这种行为,有没有办法禁用它,以便只显示我的PopupActivity?

2 个答案:

答案 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(想不出一个更好的例子),它没有任何意义......

问候!