所有这一切都与我自己的应用程序有关。
我有两个案例。首先,我的活动是最重要的,一切正常。我的服务广播信息,我的活动更新其GUI。
我的问题是,如果不存在,我不知道如何将我的活动带到前线。理想情况下,它前面的所有活动都将被关闭,而这一活动将被带到前面。我该怎么做?
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//what code do I put here to bring this activity to the front and close all other activities on top of it?
}
};
以下是我在下面的帖子的帮助下解决问题的方法。
Intent i = new Intent();
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.setClass(MyClass.this, MyClass.class);
startActivity(i);
答案 0 :(得分:1)
首先,没有直接命令将活动带到前面,例如myActivity.bringToFront。相反,你必须让android通过意图机制为你做这件事。
因此,如果您想将活动带到前面,则必须调用startActivity并使用正确的标志传递intent。例如,标志FLAG_ACTIVITY_CLEAR_TOP将完成您的工作。但是有一个问题,如果您在广播接收器或服务中使用startActivity,则无法设置此标志。所以在你的情况下,我认为你应该使用标志FLAG_ACTIVITY_NEW_TASK。
以下是一个例子:
Intent i = null;
i = new Intent(context, My_activity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
希望这会有所帮助......