gpt4 book ai didi

整个应用程序的 Android 上下文

转载 作者:行者123 更新时间:2023-11-30 03:37:42 25 4
gpt4 key购买 nike

这个问题旨在询问社区我为我的应用程序采用的方法是否正确或是否可能有一些副作用:

我创建了:- 一个名为 MasterAcitity 的 Activity ,从我的应用程序中的每个 Activity 扩展而来。 list 中的应用程序标记声明如下

<application
android:name="my.package.name.MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/ApplicationStyle" >
  • 一个名为 MyApplication 的类,它扩展了 android.App.Application,它具有以下代码

    private static Context _context;

    public static Context getContext() {
    return _context;
    }

    public static void setContext(Context context) {
    _context = context;
    }
  • 在 list 中,应用程序标签声明如下

    <application
    android:name="my.package.name.MyApplication"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/ApplicationStyle" >

MasterActivity 在 OnResume 和 OnCreate 方法中执行这段代码

MyApplication.setContext(this);

应用程序的每个 Activity 都扩展了 MasterActivity。

应用程序中有一个名为 DialogHelper 的类,它有一个静态方法

public static void showDialog(String message)

它使用 android.app.AlertDialog.Builder 创建并显示一个对话框作为上下文 MyApplication.getContext()

所以我可以在我的应用程序的任何地方使用

DialogHelper.showDialog("my message");

这种方法行得通吗?或者我需要注意什么?

我的疑问是静态上下文...

谢谢

最佳答案

Is this approach going to work?

使用 Application 进行 UI 工作有导致问题的历史。使用 Activity,或针对一组给定的环境使用专门的 Context(例如,ActionBar 上的 getThemedContext() >,getContext()Presentation 上。

关于整个应用程序的 Android 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16377109/

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