繁体   English   中英

使用getApplicationContext()时出错

error when used getApplicationContext()

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有这个错误:

无法从ContextWrapper类型静态引用非静态方法getApplicationContext()

请找到存在错误registerInGCMService(Context context)的方法

类:

package com.example.elarabygroup;

import com.google.android.gcm.GCMBaseIntentService;
import com.google.android.gcm.GCMRegistrar;

import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;
import android.provider.Settings.Secure;
import android.util.Log;

public class GCMIntenetService extends GCMBaseIntentService {
    private static final String GCM_SENDER_ID = "1111111111";

    public GCMIntenetService() {
        super();
    }

    @Override
    protected void onRegistered(Context context, String registrationId) {
        Log.i(TAG, "Device registered: regId = " + registrationId);
        GCMRegistrar.setRegisteredOnServer(context, true);
    }

    @Override
    protected void onUnregistered(Context context, String registrationId) {
        Log.i(TAG, "Device unregistered");
        if (GCMRegistrar.isRegisteredOnServer(context)) {
            String regId = "";
            Log.i(TAG, "unregistering device (regId = " + regId + ")");
            GCMRegistrar.setRegisteredOnServer(context, false);
        } else {
            // This callback results from the call to unregister made on
            // ServerUtilities when the registration to the server failed.
            Log.i(TAG, "Ignoring unregister callback");
        }
    }

    @Override
    protected void onError(Context context, String errorId) {
        // push error processing
    }

    @Override
    protected void onMessage(Context arg0, Intent arg1) {
        Log.i(TAG, "Received message");
        Log.i(TAG, "EXTRAS" + arg1.getExtras());
        // String message = getString(R.string.gcm_message);
        generateNotification(arg0,
                arg1.getStringExtra("Please download our new updates"));
        // notifies user about message

    }

    private void generateNotification(Context arg0, String stringExtra) {
        // TODO Auto-generated method stub

    }

    public static void registerInGCMService(Context context) {

        GCM_SENDER_ID = Secure.getString(context.getApplicationContext().getContentResolver(),
                Secure.ANDROID_ID);


        if (!checkIsGCMServiceAvailable(context)) {
            return;
        }
        final String regId = GCMRegistrar.getRegistrationId(context);
        if (regId.equals("")) {
            try {
                GCMRegistrar.register(context, GCM_SENDER_ID);
            } catch (Exception ex) {
            }
        } else {
            // Already registered
        }

    }

    public static boolean checkIsGCMServiceAvailable(Context context) {
        try {
            GCMRegistrar.checkDevice(context);
            GCMRegistrar.checkManifest(context);
            return true;
        } catch (Throwable th) {
            return false;
        }
    }

}
3 个回复

您可能的意思是:

context.getApplicationContext()

代替

getApplicationContext()

或者您可以尝试这样-

GCM_SENDER_ID = Secure.getString(context.getContentResolver(),
            Secure.ANDROID_ID);

当我们在静态方法中使用“ getConTentResolver()”时,有时会出现此错误:

 public static void Mthd()
 {
   Cursor cursor =getContentResolver().query(uri, null, null, null, null);
   //ur next code
  }

因此,在这种情况下,它将给出错误,因此我们必须使函数为非静态

1 android:使用getApplicationContext时ListView中的白色textColor

我正在使用以下代码填充列表视图: 布局: 它工作正常,但是结果是一个带有白色文本颜色的列表,调试后我弄清楚了,问题是ArrayAdapter的第一个参数,我只是将其更改this然后背景更改为黑色! 我的问题已通过上述解决方案解决,但我很想知道,在这种情况下, this与g ...

4 设置 PnedingIntent 时 getApplicationContext 或 get Context

设置警报时应将哪个上下文与 PendintIntent 一起使用? 应用上下文还是活动上下文? 它甚至重要吗? (性能和内存方面)设置警报时使用哪一种有什么区别? 更多细节:我在某处读到,当您持有对活动上下文的引用时,垃圾收集器永远不会清除该活动。 因此,如果我想每天设置 5 个闹钟,并且每个 ...

8 调用getActivity()。getApplicationContext()时,片段类内的Nullpointer异常

我在使用光标here.ia时会得到nullpointer异常,这时我很困惑,因为我相信每个片段都在一个活动中,并且我从谷歌那里引用了一些要点,因为当我的Fragment实例未附加到活动。(我的程序是从画廊中获取所有图像,并将其作为片段显示在我的片段中,我在这里使用SWIPABLE视图)。 提前 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM