我是一个新手,正在制作我的第一个应用程序,所以请原谅我糟糕的措辞和理解。
我创建了一个MyAlarms()类来帮助管理我的警报和通知代码。我需要一些函数的上下文,即Toast、SharedPreferences和PendingIntent。GetContext()不起作用,getApplicationContext()也不起作用,所以我决定将上下文从使用它的代码传递给MyAlarms(上下文上下文)。这个很好用。
但我现在读到我不应该这样做,因为这可能会导致内存泄漏问题。有没有其他方法可以在类中获取上下文?
提前感谢!
发布于 2020-01-15 01:53:43
我假设您需要上下文,因为您正在创建一些视图?如果是这样,那么您需要在放置视图的任何布局中使用.getContext()。
发布于 2021-01-25 14:15:10
如果你有一个静态函数,你必须在参数中传递来自活动的上下文。
例如:
private static void sendMessageToActivity(String msg) {
Intent intent = new Intent("intentKey");
intent.putExtra("key", msg);
LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent);
}
更改为:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
sendMessageToActivity(this,"test");
}
private static void sendMessageToActivity(Context context, String msg) {
Intent intent = new Intent("intentKey");
intent.putExtra("key", msg);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
https://stackoverflow.com/questions/59736783
复制相似问题