5

我正在玩GCM。

使用https://code.google.com/p/gcm/source/checkout上的示例,一切都很完美 我在我的应用程序上收到带有 gcm 消息的通知,

现在我想在位于我的 MainActivity 的 listView 中添加消息。

我在另一个类(GcmIntentService.java)上接收我的消息。如何获取 MainActivity 上下文以发送广播。

已经尝试过

private static Context mContext;

public static Context getContext() {
    return mContext;
}

public static void setContext(Context context) {
    mContext = context;
}

但不工作。

有任何想法吗。

谢谢

4

3 回答 3

5

我不确定你在做什么。但请记住以下几点

不要保留对上下文活动的长期引用(对活动的引用应该与活动本身具有相同的生命周期)。 http://www.curious-creature.org/2008/12/18/avoid-memory-leaks-on-android/

您可以执行以下操作

例子:

 new MyClass(ActivityName.this);

class MyClass
{
      Context mContext; 
      public MyClass(Context context)
      {
          mContext=context;
      } 
}
于 2013-10-12T13:35:45.063 回答
1

通过构造函数传递上下文变量。

于 2013-10-12T13:27:45.787 回答
0

创建如下的新活动

public class GetContext extends AppCompatActivity {

Context mainActivity;

public GetContext(Context mainActivity){
    this.mainActivity = mainActivity;
}

并在您之前的 mainActivity 中发送此上下文,如下所示

GetContext sendContext = new GetContext(mainActivityContext);

在哪里或者mainActivityContext只是Context mainActivityContext = this; 传递这个而不是 mainActivityContext

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_get_attendance_from_database);
}
于 2018-07-14T14:01:40.973 回答