如何在片段内的onServiceConnected中避免getActivity()== null?

时间:2014-04-15 23:25:39

标签: android android-fragments android-service

我使用:

将片段中的服务绑定在片段中
private ServiceConnection mConn = new ServiceConnection() {
    public void onServiceConnected(ComponentName className, IBinder service) {
       //HOW CAN I AVOID THIS BEING NULL???
       if(getActivity() == null)
         System.out.println("NOT HAPPY:(((");  
    }
}

2 个答案:

答案 0 :(得分:1)

这意味着在附加片段之前调用您的代码 试试这个:

@Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        mActivity = activity;
    }

答案 1 :(得分:0)

我喜欢这个...... 在Application类中,我曾经写过这个getter和setter来获取活动上下文,

private static Context mContext;

public static Context getCurrentActivityContext() {
    return mContext;
}

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

我将从所有活动onCreate(),onResume(),onStart()调用setter。 我将从片段调用getter来获取上下文对象。 我可以说这会对你有所帮助,你不会得到任何NPE。