Android-通过将已经运行的进程发送到后台来启动服务活动

时间:2011-10-24 06:26:09

标签: android android-service android-activity

我有后台服务BGService,当某些事件发生时,它会显示活动BGServActivity。我已覆盖onBackPressed以完成显示的活动BGServActivity

假设,应用程序App_XYZ的UI当前正在显示。我的服务BGService由事件触发,并显示BGServActivity。当我按下它时会关闭当前活动BGServActivity并显示应用程序App_XYZ中的上一个UI。

但是,当我从App_XYZ开始BGServActivity时,我希望将BGService的用户界面发送到后台。

我的问题是

在从我的服务BGServActivity开始我的BGService之前,是否有任何特殊标记或某些内容可以将之前显示的用户界面从其他活动发送到后台发送给他们。

2 个答案:

答案 0 :(得分:2)

如果您想在活动结束时强制用户转到主屏幕,您可以执行以下操作:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

我建议不要这样做。关闭活动时的标准行为应该是返回先前查看的活动。

答案 1 :(得分:0)

我想我得到了解决方案。

首先将HOME屏幕显示为goto10's solution

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

然后 - 打开我的活动BGServActivity

        Intent i = new Intent();
        i.setClass(getBaseContext(), BGServActivity.class);
        Bundle b = new Bundle();
        b.putBoolean("IS_FROM_SERVICE", true);
        //add extras
        i.putExtras(b);
        startActivity(i);

它的工作......:D