1

我的活动从BroadcastReceiver

@Override
public void onReceive(Context context, Intent intent) {
    Intent i = new Intent(context, SipCallActivity.class);
    i.putExtra("destination_phone", phoneNumber);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
    context.startActivity(i);
}

一段时间后,按下按钮完成活动:

Button endCall = (Button) findViewById(R.id.call_btn_terminate_call);
endCall.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            endCall(); //SIP related stuff
            finish();
        }
    });

一切都很好,花花公子。但是,当我试图通过按下应用程序列表中的图标或通过主页按钮从最近的应用程序列表中打开另一个活动时,我总是会得到刚刚关闭的活动 - SipCallActivity。这是为什么?

我想关闭该活动,除非从我的BroadcastReceiver. 我怎么能做到这一点?

4

2 回答 2

2

将标志添加FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS到您的启动意图中,或在清单中使用以下内容从最近的应用程序中排除应用程序:

<activity android:name="<your-activity"android:excludeFromRecents="true"...

于 2012-09-23T16:41:37.317 回答
1

您需要在调用 mainactivity 的意图中添加标志

i.addFlags(intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS| Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET |Intent.FLAG_ACTIVITY_NEW_TASK);

或者

在您的 Mainfest 文件中::

<activity android:name=".SipCallActivity" android:excludeFromRecents="true">
于 2012-09-23T16:57:41.870 回答