关闭另一个活动后打开活动

时间:2016-06-03 02:29:04

标签: android in-app-purchase dialogfragment

我的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方法没有完成,也会创建新活动。有没有办法等到第一个活动关闭然后打开新活动?

0 个答案:

没有答案