-4
Asyn 작업을 시작할보기에서 긴 클릭 수신기를 설정했지만 충돌합니다. 같은 뷰에서 On Click Listener를 설정하고 이 제대로 작동하도록 설정했습니다. 내 코드는 아래와 같습니다 : 개인보기 빼기 버튼; 아래onLongClickListener가 충돌 함
AsyncTask repeatDecrement;
boolean minusIsPressed=false;
public void decrementValue()
{
int currentValue=Integer.valueOf(valueTextView.getText().toString());
if(currentValue>this.minValue)valueTextView.setText(String.valueOf(currentValue-1));
}
minusButton.setOnLongClickListener(new OnLongClickListener()
{
@Override
public boolean onLongClick(View v)
{
minusIsPressed=true;
repeatDecrement=new repeatDecrement(ValueSelector.this);
repeatDecrement.execute();
return false;
}
});
public static class repeatDecrement extends AsyncTask<Void, Void, Void>
{
ValueSelector object;
public repeatDecrement(ValueSelector object)
{
this.object=object;
}
public void onPreExecute()
{
}
public Void doInBackground(Void...voids)
{
while(object.minusIsPressed)
publishProgress();
SystemClock.sleep(500);
return null;
}
public void onProgressUpdate(Void...voids)
{
object.decrementValue();
}
public void onPostExecute(Void unsused)
{
}
}
오류 로그 :
04-11 12:16:14.480: E/AndroidRuntime(24372): FATAL EXCEPTION: AsyncTask #1
04-11 12:16:14.480: E/AndroidRuntime(24372): java.lang.RuntimeException: An error occured while executing doInBackground()
04-11 12:16:14.480: E/AndroidRuntime(24372): at android.os.AsyncTask$3.done(AsyncTask.java:278)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
04-11 12:16:14.480: E/AndroidRuntime(24372): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.lang.Thread.run(Thread.java:856)
04-11 12:16:14.480: E/AndroidRuntime(24372): Caused by: java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.Void[]
04-11 12:16:14.480: E/AndroidRuntime(24372): at com.example.customviewgood.ValueSelector$repeatIncrement.doInBackground(ValueSelector.java:1)
04-11 12:16:14.480: E/AndroidRuntime(24372): at android.os.AsyncTask$2.call(AsyncTask.java:264)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
04-11 12:16:14.480: E/AndroidRuntime(24372): ... 5 more
04-11 12:16:15.430: D/OpenGLRenderer(24372): Flushing caches (mode 0)
04-11 12:16:17.830: D/OpenGLRenderer(24372): Flushing caches (mode 2)
04-11 12:16:17.900: D/OpenGLRenderer(24372): Flushing caches (mode 0)
writestack – Vyacheslav
오류 로그를 제공 할 수 있습니까? –
포스트 오류 로그 .. – FAT