gpt4 book ai didi

java - 执行停止但未恢复的 Activity ?

转载 作者:行者123 更新时间:2023-12-02 05:11:44 24 4
gpt4 key购买 nike

我正在制作一个简单的 Android 应用程序,只是为了熟悉这个概念。我有一个有两个 Activity 的应用程序,第一个应该只是显示一秒钟的启动屏幕,第二个是带有黑色方 block 的 Canvas ,当您单击它时,它会变成青色。当我运行它时,它停止并在日志中显示错误“正在执行未恢复的 Activity 停止”。

主要 Activity :

package com.example.test;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

try{
Thread.sleep(1000);
}catch(Exception e){}
Intent in = new Intent(this, Afspl.class);
startActivity(in);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

下一个 Activity :

package com.example.test;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;

public class Afspl extends Activity {

public DrawView vi;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

vi = new DrawView(this);
}

class DrawView extends View{
Paint paint = new Paint();

public DrawView(Context context){
super(context);
}

public void onDraw(Canvas c){
paint.setColor(col);
c.drawRect(40, 40, 200, 200, paint);

}

private int col = Color.BLACK;

public void setToColor(int c){
col=c;
}
}

public boolean onTouchEvent(MotionEvent me){
if(me.getX()>=30 && me.getX() <= 320 && me.getY() >=30 && me.getY() <= 320)vi.setToColor(Color.CYAN);
return super.onTouchEvent(me);
}


}

您知道我为什么会收到此错误、它的含义或如何解决此错误吗?感谢所有帮助。

最佳答案

已使用:

try{
Thread.sleep(1000);
}catch(Exception e){}
Intent in = new Intent(this, Afspl.class);
startActivity(in);

你可以尝试使用新的

new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent in = new Intent(getApplicationContext(), Afspl.class);
startActivity(in);
}
}, 1000);

你永远不应该让主线程进入休眠状态。如果您将来想做某事,请使用 Handler和一个Runnable .

此外,您应该在两个 Activity 上声明一个 View ,而不仅仅是第一个 Activity。创建一个 View 并在第二个 Activity 上使用“setContentView()”对其进行设置。

关于java - 执行停止但未恢复的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27280182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com