美文网首页
全局Context

全局Context

作者: C_G__ | 来源:发表于2019-04-29 09:48 被阅读0次

全局Context

在许多方法执行的时候,都需要context做为参数。当你自己封装工具类等很多时候,你会获取不到,怎么办?全局Context解决了上述问题。

实现

新建MyApplication类继承Application,单例模式实现globalcontext。
修改AndroidManifest.xml文件中application标签的android:name属性。
调用

BLApplication.getContext();

示例代码


BLApplication.java

public class BLApplication extends Application {

    private static Context sContext;

    @Override
    public void onCreate() {
        sContext = getApplicationContext();
    }

    public static Context getContext() {
        return sContext;
    }

    public static void initialize(Context context) {
        if (context != null) {
            sContext = context;
        }
    }
}

AndroidManifest.xml

<application
        android:name=".chapter13.BLApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme.NoActionBar">
</application>

activity_global_context.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".chapter13.GlobalContextActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <Button
                android:id="@+id/btn_gc_1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="使用全局context的Toast" />

        </LinearLayout>
    </ScrollView>

</LinearLayout>

GlobalContextActivity.java

public class GlobalContextActivity extends MyBaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_global_context);

        Button btn_gc_1 = findViewById(R.id.btn_gc_1);
        btn_gc_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(BLApplication.getContext(),
                        "This is Toast used GolbalContext", Toast.LENGTH_LONG).show();
            }
        });

    }
}

相关文章

  • Android全局Context

    Android 全局Context 继承Application类 注册全局Context类

  • 全局Context

    全局Context 在许多方法执行的时候,都需要context做为参数。当你自己封装工具类等很多时候,你会获取不到...

  • 直播逻辑

    全局创建context? 创建一个全局的context,然后退出SDK层房间时不销毁只是停止context。 SD...

  • RN对性能监控的思考及工具分享

    分享内容 全局属性Context 性能监控 debug工具 一.全局属性Context 1.概念 当你不想在组件树...

  • 全局获取Context

    然后在清单文件,,这个需要全包名。。。。。

  • 全局Context设置

    如果一个java类,没有继承任何类,是无法直接getApplicationContext的,这时候,可以写一个全局...

  • 全局context技巧

    创建MyApplication继承Application 在AndroidManifest.xml清单文件中配置M...

  • flutter 全局context

    全局拿context.... 有很多网友提供很多方法. 正巧项目中需要用到, 我的跳转逻辑是通过静态路由跳转的所...

  • React Context

    Context 在组件树进行数据传递全局数据 何时使用Context 共享哪些对于一个组件树而言是全局的数据 使用...

  • 基于hook实现的全局状态管理

    全局状态管理方式 1 .context 2 .redux 3 .hook 实现全局 简单版本 1 .使用

网友评论

      本文标题:全局Context

      本文链接:https://www.haomeiwen.com/subject/izsenqtx.html