2

我有一个片段 F。从服务获取结果后,F 需要完成它所在的活动并在 Web 浏览器中启动一个页面,我使用 Intent 执行该页面。

如果用户按下后退按钮,它似乎工作正常。但是,如果他从最近的应用程序启动该应用程序,则该活动尚未完成。我已经考虑过其他方法。就像完成当前活动并从父活动打开页面一样。但是我必须对流程进行很多更改。所以这将是我最后的选择。有什么方法可以确保即使我从最近的应用程序启动该活动也已完成?

Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
getActivity().finish();

编辑:添加代码。

4

2 回答 2

6

尝试使用此代码启动浏览器并清除应用程序的所有堆栈

Intent intent  = new Intent(); // need to set your Intent View here
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);        
getActivity().startActivity(intent);
getActivity().finish();

更新

在 AndroidManifiest.xml 文件中的活动中尝试此属性

<activity android:name=".MainActivity"
        android:excludeFromRecents="true" ...
于 2013-01-15T06:50:05.557 回答
1

使用以下代码

Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

this.finish();
于 2013-01-15T11:07:56.417 回答