gpt4 book ai didi

Android:在不同的 Activity 中重复使用相同的 View 对象(案例是关于广告横幅)

转载 作者:可可西里 更新时间:2023-11-01 19:07:08 30 4
gpt4 key购买 nike

我想在不同的 Activity 中重用同一个 View 对象(不是 View 类,也不是 xml 文件,我指的是内存中的对象)。

我差一点就完成了。当然,重要的是上下文。

我尝试使用应用程序上下文。它几乎可以工作,但是当我点击我在不同 Activity 之间传输的 View ,并尝试从它(或链接)启动另一个应用程序时,它崩溃了。 (我不记得确切的崩溃,但如果你需要的话,我会挖掘它)。

我尝试了一些 Activity ,我不介意泄漏一次,并将其作为上下文提供。它有效,实际上一切正常,直到我开始在 ViewFlipper 中出现奇怪的异常。

我的问题是,这种复用真的可行吗?如何做到稳定?你有这方面的经验吗?

非常感谢,丹

最佳答案

我谨记,您可以承担泄露 1 个 Activity 的后果,因为这是我所知道的唯一解决方案:声明一个静态 View ,例如在您的第一个 Activity (您正在请求广告)中使用 myAdView。现在您可以在每个 Activity 转换中添加和删除此 myAdView。当然,您必须在单独的 Activity 中为您的广告维护单独的 LinearLayouts,我们将在其中添加/删除 myAdView例如。假设您要从 Activity A 转到 B,然后在 A 的 onPause 中删除 myAdView:

private LinearLayout layoutAd;
layoutAd = (LinearLayout) findViewById(R.id.layout_ad); // from A's xml
protected void onPause() {
super.onPause();
layoutAd.removeView(FirstActivity.adBannerView);
}

并在 B 的 onResume 中添加相同的(FirstActivity 的)myAdView:

private LinearLayout layoutAd;
layoutAd = (LinearLayout) findViewById(R.id.layout_ad); // from B's xml
protected void onResume() {
super.onResume();
layoutAd.addView(FirstActivity.adBannerView);
}

希望这能在一定程度上解决您的问题。

关于Android:在不同的 Activity 中重复使用相同的 View 对象(案例是关于广告横幅),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790426/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com