这是我的非活动课程:

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class PostManager {

    private Bundle bundle;
    private Context context;
    private Session session;
    private String victimId=null;

    public PostManager() {
        SavedFriend savedFriend = new SavedFriend();
        bundle = savedFriend.getBundle();
        context = savedFriend.getContext();
        session = savedFriend.getSession();
        victimId = savedFriend.getfriendsId();

        Log.e("postManager", victimId);
        Log.e("postManager", bundle.getString("message"));
    }
}


这是我的应用程序类:

import java.util.List;

import android.app.Application;
import android.content.Context;
import android.os.Bundle;

import com.facebook.Session;
import com.facebook.model.GraphUser;

public class SavedFriend extends Application {
    private List<GraphUser> selectedUsers;
    private String friendsId;
    private Session session;
    private Bundle bundle;
    private Context context;

    public List<GraphUser> getSelectedUsers() {
        return selectedUsers;
    }

    public void setSelectedUsers(List<GraphUser> selectedUsers) {
        this.selectedUsers = selectedUsers;
    }

    public String getfriendsId() {
        return friendsId;
    }

    public void setfriendsId(String id) {
        this.friendsId = id;
    }

    public Session getSession(){
        return session;
    }

    public void setSession(Session session){
        this.session = session;
    }

    public void setContext(Context context){
        this.context = context;
    }

    public Context getContext(){
        return context;
    }

    public void setBundle(Bundle bundle){
        this.bundle = bundle;
    }

    public Bundle getBundle(){
        return bundle;
    }
}


我已经在不为null的片段类(friendsId)中使用了应用程序类的数据。

当我从PostManager调用应用程序类的数据时,它返回值null。

我试图通过friendsId查看messageLog.e的值。但是它给了我nullPointer异常。

这是否意味着我在应用程序类的PostManager constructor中调用的所有值都为null?如果是,该怎么办?

我需要PostManager类中的会话,applicationcontext,消息,friendsId值。我可以将这些值传递给PostManager,但是该类由onReceive()alarm class调用,该类扩展BroadcastReceiver,并且此警报是从另一个扩展Fragment的类设置的。我需要的所有值都是由此类创建的,除了friendsId,而且我不知道如何从第一类->警报类->后管理器类传递这些值。

在警报类清单中:

<application android:name=".SavedFriend"
  .......>
  ....
  <receiver android:name="package name.Alarm"/>
  ....
</application>

最佳答案

您正在创建Application子类的新实例,因此将不会设置这些成员变量。

相反,您可以使用this question中的方法并存储Application的易于访问的静态变量。使用类似这样的方法而不是创建一个新实例。

10-08 02:01