不在前台的Activity在同一个应用程序中启动另一个Activity的正确方法是什么?

时间:2011-08-03 15:36:43

标签: android android-activity android-intent

我正在处理的应用可以在后台接收异步事件。我构建应用程序的方式,当客户端收到此类事件时,它会向一个活动所拥有的处理程序发送一条消息。活动以各种方式处理消息。 在一种情况下,当某个特定事件在应用程序在前台时到达时,我需要向用户显示一个Activity和一些UI。就像呼叫到达时一样,无论其他应用当前处于何种活动状态,应答或拒绝用户界面都会显示在前台。 最好的方法是什么?我正在重新阅读有关活动,意图和任务的文档,但它并不总是清晰或易于理解。我也在积极寻找做类似事情的示例代码或教程,但到目前为止没有运气。欢迎任何指针或参考。

2 个答案:

答案 0 :(得分:1)

听起来你需要BroadcastReceiver

答案 1 :(得分:1)

你的意思是

startActivity( new Intent(this, YourClass.class), Intent.FLAG_ACTIVITY_NEW_TASK);

编辑:啊,你还没有背景材料

`

private IntentFilter mNoticeFilter = new IntentFilter("com.you.yourapp.NEW_NOTICE");

private BroadcastReceiver mNoticeReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // Do something! ie launch your activity
            startActivity( new Intent(this, YourClass.class));
        }
    };`

创建活动时,您可以

registerReceiver(mNoticeReceiver, mNoticeFilter);

并且不要忘记unregisterReceiver(mNoticeReceiver);

见这里:http://developer.android.com/reference/android/content/BroadcastReceiver.html