创建一个全局 Toast 方法以在所有活动中使用它?

Create a global Toast method to use it across all activities?

我想创建一个全局的 shortToast 和 longToast 方法,以便在我拥有的所有其他活动中动态使用它,因此我不必在每个 activity.

中定义 Toast 方法

我试过了,但是 Android Studio 告诉我这是内存泄漏:

public static Activity thisActivity = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    thisActivity = this;    
}

public static void shortToast()
{       
  Toast.makeText(thisActivity, "message" , Toast.LENGTH_SHORT).show();
}

public static void longToast()
{       
  Toast.makeText(thisActivity, "message" , Toast.LENGTH_LONG).show();
}

我可以做些什么来实现这个具有全局 toast 方法(没有内存泄漏)的目标?

Activity 作为参数传递给 shortToast()longToast()

或者,将这些方法放在 Activity 的子类中,让您的所有活动都继承自它。然后,您可以从方法和 thisActivity 字段中删除 static 关键字,而只需使用 this.

创建实用程序class:

public class Utils {

    public static void showToast(String msg, Context ctx) {
        Toast.makeText(ctx, msg, Toast.LENGTH_SHORT).show();
    }
}

从 Activity 使用它:

Utils.showToast("Message", this);

来自片段:

Utils.showToast("Message", getActivity());