Autore Topic: Help asynctask  (Letto 472 volte)

Offline Rino63

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Mostra profilo
Help asynctask
« il: 10 Giugno 2014, 17:22:52 CEST »
0
in una mia app ho implementato un servizio che parte al boot del cell e un asynctask per gestire una operazione di rete.

il servizio funziona regolarmnente e lancia un asyncatsk che riporto qui:

Codice (Java): [Seleziona]
public class MioAyncTask extends AsyncTask<Void, Void, Void> {
        private Context context;
   
       
   
 
        @Override
        protected Void doInBackground(Void... params)    {
               
                afficher() ;
                return null;
               
            }
       
    private boolean TestaUrl(){
        URL url = null;
                try {
                        url = new URL("http://www.google.it");
                } catch (MalformedURLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        HttpURLConnection huc = null;
                try {
                        huc = (HttpURLConnection) url.openConnection();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        int responseCode = 0;
                try {
                        responseCode = huc.getResponseCode();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

        if (responseCode != 404) {
        return true;
                //System.out.println("GOOD");
        } else {
        return false;
                //System.out.println("BAD");
        }
       
    }
private boolean haveNetworkConnection() {
            boolean haveConnectedWifi = false;
            boolean haveConnectedMobile = false;

            ConnectivityManager cm = (ConnectivityManager) this.context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo[] netInfo = cm.getAllNetworkInfo();
            for (NetworkInfo ni : netInfo) {    
                if (ni.getTypeName().equalsIgnoreCase("WIFI"))
                    if (ni.isConnected())
                        haveConnectedWifi = true;
                if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
                    if (ni.isConnected())
                        haveConnectedMobile = true;
            }
           
            return haveConnectedWifi || haveConnectedMobile;
        }
 
    private void afficher()
    {
       
        if (haveNetworkConnection() ){
              if(TestaUrl()){
               
                               
               
               
                }
        else { }
        }
        else {
 
        }
       
    }
}

nel simulatore (api 15) ricevo contiunuamente un messaggio di errore che l'app è bloccata (anche se in realtà poi parte ma non esegue il servizio) il logcat è il seguente:
Codice (XML): [Seleziona]
[code=java]06-10 15:09:56.843: E/AndroidRuntime(459): java.lang.RuntimeException: An error occured while executing doInBackground()
06-10 15:09:56.843: E/AndroidRuntime(459):      at android.os.AsyncTask$3.done(AsyncTask.java:278)
06-10 15:09:56.843: E/AndroidRuntime(459):      at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-10 15:09:56.843: E/AndroidRuntime(459):      at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-10 15:09:56.843: E/AndroidRuntime(459):      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-10 15:09:56.843: E/AndroidRuntime(459):      at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-10 15:09:56.843: E/AndroidRuntime(459):      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
06-10 15:09:56.843: E/AndroidRuntime(459):      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
06-10 15:09:56.843: E/AndroidRuntime(459):      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
06-10 15:09:56.843: E/AndroidRuntime(459):      at java.lang.Thread.run(Thread.java:856)
06-10 15:09:56.843: E/AndroidRuntime(459): Caused by: java.lang.NullPointerException
06-10 15:09:56.843: E/AndroidRuntime(459):      at com.miaapp.MioAyncTask.haveNetworkConnection(MioAyncTask.java:74)
06-10 15:09:56.843: E/AndroidRuntime(459):      at com.miaapp.MioAyncTask.afficher(MioAyncTask.java:108)
06-10 15:09:56.843: E/AndroidRuntime(459):      at com.miaapp.MioAyncTask.doInBackground(MioAyncTask.java:24)
06-10 15:09:56.843: E/AndroidRuntime(459):      at com.miaapp.MioAyncTask.doInBackground(MioAyncTask.java:1)
06-10 15:09:56.843: E/AndroidRuntime(459):      at android.os.AsyncTask$2.call(AsyncTask.java:264)
06-10 15:09:56.843: E/AndroidRuntime(459):      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-10 15:09:56.843: E/AndroidRuntime(459):      ... 5 more
[/code]

qualcuno sa spiegarmi cosa accade? grazie per l'attenzione.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Help asynctask
« Risposta #1 il: 10 Giugno 2014, 18:06:25 CEST »
0
Citazione
06-10 15:09:56.843: E/AndroidRuntime(459): Caused by: java.lang.NullPointerException
06-10 15:09:56.843: E/AndroidRuntime(459):      at com.miaapp.MioAyncTask.haveNetworkConnection(MioAyncTask.java:74)

Cosa c'è che potrebbe essere NULL alla riga 74 di MioAyncTask.java ?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Rino63

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Mostra profilo
Re:Help asynctask
« Risposta #2 il: 10 Giugno 2014, 18:55:05 CEST »
0
cm ?

Post unito: 10 Giugno 2014, 20:33:27 CEST
risolta quella portando il cm come private adesso si presenta un altro errore....
Codice (Java): [Seleziona]
06-10 18:21:28.223: A/NetworkStats(92): problem reading network stats
06-10 18:21:28.223: A/NetworkStats(92): java.lang.IllegalStateException: problem parsing idx 1
06-10 18:21:28.223: A/NetworkStats(92):         at com.android.internal.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:300)
06-10 18:21:28.223: A/NetworkStats(92):         at com.android.server.NetworkManagementService.getNetworkStatsUidDetail(NetworkManagementService.java:1282)
06-10 18:21:28.223: A/NetworkStats(92):         at com.android.server.net.NetworkStatsService.performPollLocked(NetworkStatsService.java:831)
06-10 18:21:28.223: A/NetworkStats(92):         at com.android.server.net.NetworkStatsService.updateIfacesLocked(NetworkStatsService.java:743)
06-10 18:21:28.223: A/NetworkStats(92):         at com.android.server.net.NetworkStatsService.updateIfaces(NetworkStatsService.java:721)
06-10 18:21:28.223: A/NetworkStats(92):         at com.android.server.net.NetworkStatsService.access$000(NetworkStatsService.java:128)
06-10 18:21:28.223: A/NetworkStats(92):         at com.android.server.net.NetworkStatsService$1.onReceive(NetworkStatsService.java:612)
06-10 18:21:28.223: A/NetworkStats(92):         at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728)
06-10 18:21:28.223: A/NetworkStats(92):         at android.os.Handler.handleCallback(Handler.java:605)
06-10 18:21:28.223: A/NetworkStats(92):         at android.os.Handler.dispatchMessage(Handler.java:92)
06-10 18:21:28.223: A/NetworkStats(92):         at android.os.Looper.loop(Looper.java:137)
06-10 18:21:28.223: A/NetworkStats(92):         at android.os.HandlerThread.run(HandlerThread.java:60)
06-10 18:21:28.223: A/NetworkStats(92): Caused by: java.io.FileNotFoundException: /proc/net/xt_qtaguid/stats: open failed: ENOENT (No such file or directory)
06-10 18:21:28.223: A/NetworkStats(92):         at libcore.io.IoBridge.open(IoBridge.java:406)
06-10 18:21:28.223: A/NetworkStats(92):         at java.io.FileInputStream.<init>(FileInputStream.java:78)
06-10 18:21:28.223: A/NetworkStats(92):         at com.android.internal.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:269)
06-10 18:21:28.223: A/NetworkStats(92):         ... 11 more
06-10 18:21:28.223: A/NetworkStats(92): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
06-10 18:21:28.223: A/NetworkStats(92):         at libcore.io.Posix.open(Native Method)
06-10 18:21:28.223: A/NetworkStats(92):         at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
06-10 18:21:28.223: A/NetworkStats(92):         at libcore.io.IoBridge.open(IoBridge.java:390)
06-10 18:21:28.223: A/NetworkStats(92):         ... 13 more

sono alla frutta.....
« Ultima modifica: 10 Giugno 2014, 20:33:27 CEST da Rino63, Reason: Merged DoublePost »

Offline BobArctor

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    HTC Hero, Galaxy S4, GP50
  • Play Store ID:
    Michele Valentini
  • Sistema operativo:
    Windows 8
Re:Help asynctask
« Risposta #3 il: 26 Luglio 2014, 22:17:04 CEST »
0
Scusa ma "context" non lo inizializzi mai?