android - 销毁从 BroadcastReceiver 开始的 Activity

标签 android android-intent android-activity

我从 BroadcastReceiver 开始我的 Activity

@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);
}

一段时间后按下按钮完成 Activity :

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();
        }
    });

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

我想关闭该 Activity ,除非从我的 BroadcastReceiver 调用,否则用户永远不会再看到它。我怎样才能做到这一点?

最佳答案

或者添加标志 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 根据您的启动 Intent ,或在 list 中使用以下内容将应用从最近的应用中排除:

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

关于android - 销毁从 BroadcastReceiver 开始的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12554072/

相关文章:

android - 在 listview 中呈现 webview 有烦人的行为

android - 远程服务+android的目的

java - 如何在多屏工作流中使用 Activity 或 Fragment?

java - android中的操作顺序,为什么会这样呢?

android - 有没有人使用 OpenCV 实现了一个用于统一的 android 插件?

android - 创建apk时报错: this class should provide a default constructor (…) [Instantiatable],

android - 从 BroadcastReceiver 接收时 Intent 中缺少额外内容

android - 为什么我们得到这些 "invalid" Intent ?

android - setFastScrollEnabled 在我的所有手机上都能正常工作,但在 Honeycomb 平板电脑上会崩溃

android - 如何从 Activity D 返回到 A