我的Android游戏存在问题,我已经搜索了两天的帮助,但我找不到答案。所以它是这样的,我有一个活动和一个对话片段。该活动有应用内购买(IabHelper类等)。
级别完成后调用dialogfragment。当dialogfragment调用事件dismiss时,它会关闭活动并重新启动完全相同的活动,但是使用其他级别(onCreate中有一个开关根据级别更改布局)。问题是,当我完成一个级别,然后出现新的,如果我尝试购买某些东西,它会因为IabHelper对象为空而崩溃:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.carvalina.footballsmart.util.IabHelper.launchPurchaseFlow(android.app.Activity, java.lang.String, int, com.carvalina.footballsmart.util.IabHelper$OnIabPurchaseFinishedListener, java.lang.String)' on a null object reference
我的对话片段代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_dialog_win, container, false);
//getDialog().setTitle("");
Button dismiss = (Button) rootView.findViewById(R.id.dismiss);
dismiss.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int nivelActual = getActivity().getIntent().getExtras().getInt("nivel");
abrirNivel(nivelActual+1);
dismiss();
}
});
return rootView;
}
protected void abrirNivel(int nivel){
Intent intent = new Intent(getActivity(), Nivel.class);
Bundle b = new Bundle();
b.putInt("nivel", nivel);
intent.putExtras(b);
getActivity().finish();
startActivity(intent);
}
在我的活动的onDestroy方法中,IabHelper对象被清除但是,当我调试应用程序时我发现,即使onDestroy方法没有完成,也会创建新活动。有没有办法等到第一个活动关闭然后打开新活动?