я могу отправитьBroadcast из класса расширить AsyncTask? - PullRequest
0 голосов
/ 01 августа 2011

У меня есть класс, который расширяет AsyncTask.

Когда задание выполнено в фоновом режиме, в ходе выполнения я получаю статические свойства другого класса, равные результату выполнения фона, n Я ХОЧУ ЭТО ВЕЩАТЬНАСТОЛЬКО ЧТО, что получатель в другом классе будет обновлять интерфейс

здесь код onPostExecuted

protected void onPostExecute(String result) {
    Log.d(tag, "post executed "+result);
    // do sth here

    if (result != null){
        result = result.trim();
        String temp_result[];
        if ( result.contains("|") ){
            temp_result = result.split("\\|");
            MyGPS.location_info = temp_result[1];//
            Log.d(result, "contains | : "+MyGPS.location_info);
        }else if (result.equalsIgnoreCase("300 OK")){
            Log.d(result, "in 300 OK BUT UNKNOWN : "+ result);
            MyGPS.location_info = "Unknown";
        }else if (result.equalsIgnoreCase("400 ERROR"))
            Log.d(result, "400 ERROR : "+ result);
        else Log.d(result, "else : "+ result);

        //assemble data bundle to be broadcasted
        //myFilteredResponseThread = new Intent(GPS_FILTER);
        myFilteredResponseThread.putExtra("location_info_post", 

MyGPS.location_info);
                    // CAN"T USE SEND BROADCAST METHOD ?


        //myFilteredResponseThread.
        //Log.e(">>GPS_Service<<", "location_info"+MyGPS.location_info);
    }   
}

после этого я не могу написать метод sendBroadcast, он не определен, ПОЧЕМУ?

1 Ответ

0 голосов
/ 01 августа 2011

Если я правильно вас понял, следующее решение -

class MyService extends Service{

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }

       class GPSListener implements LocationListener{
        public void onLocationChanged(Location arg0) {
            // TODO Auto-generated method stub
                    // you can get context as follow
            MyService.this.getBaseContext().sendBroadcast(new Intent("Hi"));
        }

        public void onProviderDisabled(String arg0) {
            // TODO Auto-generated method stub

        }

        public void onProviderEnabled(String arg0) {
            // TODO Auto-generated method stub

        }

        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
            // TODO Auto-generated method stub

        }

    }

       }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...