AndroidのAsyncTaskクラスと、なぜエラーが発生するのかについて質問があります。ここで内部クラスを定義しました。
class MyTask extends AsyncTask<String,String,Integer>{
Context context;
ProgressDialog dialog;
MyTask(Context c)
{
this.context = c;
}
//@Override
protected void onPreExecute()
{
dialog = new ProgressDialog(context);
dialog.setMessage("Scanning Ports!");
dialog.show();
}
@Override
protected Integer doInBackground(String... params) {
// TODO Auto-generated method stub
for(intBeg = intBeg; intBeg <= intEnd; intBeg++
{
try
{
Socket s = new Socket(strMachine, intBeg);
isConnected += strMachine + " Is Listening On Port: " + intBeg + "\n";
Log.d("PORTSCAN", isConnected);
s.close();
}catch(Exception e){
notConnected += strMachine + " Is Not Listening On Port: " + intBeg + "\n";
//Toast.makeText(getBaseContext(), e.getMessage(), 3000).show();
Log.d("PORTSCAN", notConnected);
}
}
return 1;
}
protected void onPostExecute(Integer... params)
{
}
protected void onProgressUpdate(String... params)
{
}
}
ただし、doInBackgroundが終了すると、onPostExecute()を呼び出すことになりますが、これは発生しません。また、onPostExecute()で「@Override」アノテーションを使用しようとしても、onPostExecuteがスーパークラスメソッドをオーバーライドする必要があるというエラーが表示されます。何が起こっているのかわからない!何か助けはありますか?ありがとう!