Android应用程序在切换活动时崩溃

时间:2012-07-19 04:57:07

标签: android

我是Android新手,我一直在努力应用我的应用程序。 我有一个我创建的迷宫型游戏。主要活动开始于一个带有小模糊的启动画面和一个启动游戏的按钮,它只创建一个SurfaceView,在其上绘制精灵和迷宫。这是我遇到第一期的问题。出于某种原因,我的应用程序占用了手机CPU的50%左右。我想这可能是因为我在表面视图中的onDraw方法中反复在屏幕上绘制矩形:

protected void onDraw(Canvas canvas) {
   canvas.drawColor(Color.BLACK);
// draws the blocks and the droid sprite
for (int i = 0; i < blocks.size(); i++) {
        MapBlock piece = blocks.get(i);
        canvas.drawRect(piece.getBlock(), piece.getColor());
        canvas.drawRect(getRectWithinRect(piece.getBlock()), piece.getInnerRectColor());
    }
    droid.draw(canvas);
}

如果我移动绘图代码或只是在迷宫未停留在屏幕上时执行此操作。有一个更好的方法吗?我不是100%确定我是否在正确的地方做这件事。

我的第二个问题发生在用户获胜时。获胜后,我使用以下方式更改活动:

Intent intent = new Intent();         
intent.setClass(getContext(), FinishActivity.class); 
intent.putExtra("code", 1);
((Activity)getContext()).startActivity(intent);

切换似乎正常。我切换到一个只有一些“你赢了”文本和一个退出按钮的活动。除了onDestroy和onStop之外,这是该类中唯一的代码:

public class FinishActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Log.d("tga", "made it herE!");
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    // making it full screen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.finish);


}

当您点按新屏幕的任何部分且退出按钮无响应时,应用程序崩溃。我究竟做错了什么?和我一样,就像我说的那样,我对android很新。

1 个答案:

答案 0 :(得分:0)

安装

intent.putExtra("code", 1);
((Activity)getContext()).startActivity(intent);

放入

intent.putExtra("code", 1);
((AppCompatActivity)getContext()).startActivity(intent);