Java 无法在未调用looper.prepare的线程内创建处理程序
我有一个问题,那个就是我在主题中写的那个错误。我有三个类,一个是“主”类,另一个是类铺装层,它应该根据类级别中的字符串在屏幕上添加铺装层对象。我该怎么做才能将该方法保留在铺装层类中并消除该错误。我在这里申请资料来源: 开始:Java 无法在未调用looper.prepare的线程内创建处理程序,java,android,loops,handler,Java,Android,Loops,Handler,我有一个问题,那个就是我在主题中写的那个错误。我有三个类,一个是“主”类,另一个是类铺装层,它应该根据类级别中的字符串在屏幕上添加铺装层对象。我该怎么做才能将该方法保留在铺装层类中并消除该错误。我在这里申请资料来源: 开始: 当我的Android库被一些本地引擎(比如Unity)使用时,我遇到了这些问题 这是我在不确定代码何时在需要循环器的线程上执行时使用的方法: if (Looper.myLooper() == null) { Looper.prepare();
当我的Android库被一些本地引擎(比如Unity)使用时,我遇到了这些问题 这是我在不确定代码何时在需要循环器的线程上执行时使用的方法:
if (Looper.myLooper() == null) {
Looper.prepare();
}
需要明确的是,上面的代码需要在线程的run()方法中执行。
package com.example.simplerpgdorid;
import com.example.simplerpgdorid.Start.OurView;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.util.Log;
public class Pavement extends Activity implements Locatable{
OurView v;
Bitmap b = null;
int x, y, size;
boolean isInited = false, isDeInited;
public Pavement(int x, int y, Bitmap bit){
this.x = x * 32;
this.y = y * 32;
this.b = bit;
}
public void init(String[] xlevel){
Start.pavements.add(new Pavement(32, 32, getbitmap()));
Start.pavements.add(new Pavement(52, 52, getbitmap()));
Start.pavements.add(new Pavement(22 , 66, getbitmap()));
if(!isInited){
for(int z = 0; y < Level.lvl.length; y++){
for(int s = 0; x < Level.lvl.length; x++){
if(xlevel[z].charAt(s) == 'p'){
Start.pavements.add(new Pavement(z, s, getbitmap()));
}
Start.gowno ++;
}
}
}
isInited = true;
}
public void deInit(String[] xlevel)
{
if(!isDeInited)
for(int y = 0; y < Start.pavements.size(); y++)
{
Start.pavements.get(y).x = -100;
Start.pavements.get(y).y = -100;
}
isDeInited = true;
}
@Override
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
canvas.drawBitmap(getbitmap(), x, y, null);
}
@Override
public void isInited() {
// TODO Auto-generated method stub
isInited = false;
}
@Override
public void isDeInited() {
// TODO Auto-generated method stub
isDeInited = false;
}
@Override
public Bitmap getbitmap() {
// TODO Auto-generated method stub
Bitmap bmp = null;
bmp = b;
return bmp;
}
@Override
public void setBitmap(Bitmap bmp) {
// TODO Auto-generated method stub
this.b = bmp;
}
}
package com.example.simplerpgdorid;
public class Level {
public static String lvl[][] = new String[2][];
public Level(){
lvl[0] = new String[]{
"...p.....p",
"...p.....p",
"...p.....p",
"...p.....p",
"...p.....p",
"...p.....p",
"...p.....p",
"...p.....p",
"...p.....p",
"...p.....p",
};
lvl[1] = new String[]{
"...p.....p",
"...p.....p",
"...p.....p",
"...p.....p",
"...p.pp..p",
"...p.....p",
"...p.....p",
"...p.....p",
"...p.....p",
"...p.....p",
};
}
}
if (Looper.myLooper() == null) {
Looper.prepare();
}