0

私は Android を初めて使用し、Android プロジェクトにデフォルトの MainActivity クラス以外のクラスを作成しました。そのファイルを使用してプロジェクトを開始したいと考えています。マニフェストファイルに追加したものは次のとおりです。

<activity
        android:name="com.example.surfaceview.SurfaceViewExample"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.SURFACEVIEW" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

そして、私が作成したクラス:

public class SurfaceViewExample extends Activity implements OnTouchListener {

OurView v;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    v=new OurView(this);
    setContentView(v);
    v.setOnTouchListener(this);
}



@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    v.pause();
}



@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    v.resume();
}



public class OurView extends SurfaceView implements Runnable{

    Thread t = null;
    SurfaceHolder holder;
    boolean isItOK=false;

    public OurView(Context context) {
        super(context);
        holder=getHolder();
    }

    @Override
    public void run() {
        while(isItOK){
            if(holder.getSurface().isValid()){
                continue;
            }

            Canvas c = holder.lockCanvas();
            c.drawARGB(255, 155, 155, 10);//canvas backgroundu boyama
            holder.unlockCanvasAndPost(c);
        }

    }

    public void pause(){ //pause the thread
        isItOK=false;
        while(true){
            try{
                t.join();
            }catch(InterruptedException e){
                e.printStackTrace();
            }
            break;              
        }
        t=null;
    }

    public void resume(){ //resume the thread
        isItOK=true;
        t=new Thread(this); //this parameter means use this run method
                            //which is inside that class
        t.start();
    }


}



@Override
public boolean onTouch(View v, MotionEvent me) {
    return false;
}

}

しかし、アプリケーションは起動しません。問題はインテント フィルター内の次の行にある可能性があると思います。

<action android:name="android.intent.action.SURFACEVIEW" />

誰でもこれで私を助けることができますか?

ありがとう

4

1 に答える 1