可以使用Java里的单例模式把 Activity 的 context 暴露出来。

首先,在 MainActivity 里面定义变量

private static MainActivity instance

接着在 onCreate 方法里对 instance 赋值

instance = this

最后把instance封装在一个方法里供其他类使用

public static MainActivity getInstance(){
    return instance;
}

这样,就能使用任意一个 Activity 的 Context 了。

例如,在自定义类GetContext里调用 Toast:

package com.example.coolarticlesetsqloperate;
 
import android.content.Context;
import android.util.Log;
import android.widget.Toast;
 
public class GetContext {
    public void ContextTest(){
        try{
            //Tosat里第一个参数调用了获取Context方法
            Toast.makeText(MainActivity.getInstance(),"获取上下文成功!",Toast.LENGTH_LONG).show();
        }
        catch(IllegalStateException e){
            Log.i("test:", "这里出异常了,快请开发小哥哥来帮忙!");
        }
    }
}

本文来源:
如何在自定义类里获取上下文Context——Android

标签: none

评论已关闭