开始相同活动并摧毁前一个活动的最佳方式

时间:2014-10-16 11:27:01

标签: android android-activity webview

我正在制作一些将从主要活动加载的webview活动。有没有办法运行,让每1小时说一些方法可以在后台启动webview活动#2,杀掉#1 webview活动并尽可能无缝切换#2到#1,也许是一些白屏一秒钟或者什么的,因为webview中存在一些内存泄漏,我需要偶尔销毁一次活动,但是想尽可能顺利地过渡一切?

提前谢谢!

2 个答案:

答案 0 :(得分:0)

这段代码可能适合你。当我的用户更改应用程序的语言时,我用它来重新启动我的应用程序。

Intent intent = new Intent(getActivity(), StartUpActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(
                                    getActivity(),
                                    123456,             //request code ??? some dummy numbers.
                                    intent,
                                    PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager manager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
manager.set(AlarmManager.RTC, System.currentTimeMillis() + 100, pendingIntent);
System.exit(0);

您可以在此处阅读PendignIntent课程:http://developer.android.com/reference/android/app/PendingIntent.html

我完全不确定request code是什么。我使用了一些虚拟数字,但它确实有效。

答案 1 :(得分:0)

如果您绝对必须这样做,我建议您将活动包装在父母的父母身上。活动,每次你需要杀死孩子" (即当前)活动,只需转换到父级(使用Intent.FLAG_ACTIVITY_CLEAR_TOP标志),然后让父级生成活动的新实例。这样你就不必做任何有趣的事情,而且它与android活动的工作方式一致。