AsyncTask未在服务中调用

时间:2016-06-26 10:45:42

标签: android android-asynctask android-service

我目前正试图从我的服务中调用AsyncTask,但每次调用该服务时,它要执行的AsyncTask都不会被调用或无法正常工作。我已经尝试使用相同的服务来调用文本消息方法,它可以工作,但它不适用于AsyncTask。我的服务等级如下。

public class TimerLocationService extends Service {

private static boolean isRunning = false;
@Override
public void onCreate() {
    // TODO Auto-generated method stub
    //Toast.makeText(this, "Timer onCreate()", Toast.LENGTH_LONG).show();
    stopSelf();
}

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    //Toast.makeText(this, "Timer onBind()", Toast.LENGTH_LONG).show();
    return null;
}

@Override
public void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    stopSelf();
    isRunning = false;
   // Toast.makeText(this, "Timer onDestroy()", Toast.LENGTH_LONG).show();

}

@Override
public void onStart(Intent intent, int startId) {
    // TODO Auto-generated method stub
    super.onStart(intent, startId);
    isRunning = true;
    HttpGetAsyncTask g = new HttpGetAsyncTask();
    g.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
    Toast.makeText(this, R.string.timer_message_sent, Toast.LENGTH_LONG).show();
    showNotification();
    onUnbind(intent);
    onDestroy();
    quit();
   // stopService(new Intent(this,TimerLocationService.class));

}


@Override
public boolean onUnbind(Intent intent) {
    // TODO Auto-generated method stub
    Toast.makeText(this, "Timer onUnbind()", Toast.LENGTH_LONG).show();
    return super.onUnbind(intent);

}
public void quit() {
    int pid = android.os.Process.myPid();
    android.os.Process.killProcess(pid);
    System.exit(0);
}


    private class HttpGetAsyncTask extends AsyncTask<String, Void, String> {


        String body ="test";
        String number ="123456789";
        @Override
        protected String doInBackground(String... params) {
            URL url;
            HttpURLConnection urlConnection = null;
            String paramMessage = body;
            String paramNumber = number;
            try {
                paramMessage = URLEncoder.encode(paramMessage, "UTF-8");
            } catch (Exception e) {}
            System.out.println("body" + paramMessage + " to :" + paramNumber);
            try {
                url = new URL("https://" + paramMessage + "&to=" + paramNumber +"&from=G.A.T.E.S&reference=your_reference");

                urlConnection = (HttpURLConnection) url
                        .openConnection();

                InputStream in = urlConnection.getInputStream();

                InputStreamReader isw = new InputStreamReader(in);

                int data = isw.read();
                while (data != -1) {
                    char current = (char) data;
                    data = isw.read();
                    System.out.print(current);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (urlConnection != null) {
                    urlConnection.disconnect();
                }
            }


            return paramMessage;
        }
        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            Toast.makeText(getApplicationContext(), R.string.get_working, Toast.LENGTH_LONG).show();


        }



}


}

0 个答案:

没有答案