2012-04-06 9 views
0

Können Sie bitte sagen, warum die Ausgabe so schnell verschwindet?Warum wird die Ausgabe für so wenig Dauer angezeigt?

Wenn Sie den Code ausführen möchten, müssen Sie die folgenden in AndroidManifest.xml Datei

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

Unten finden Sie den Code ein:

package prototype.networking.textfiles; 

import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.net.URLConnection; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.Toast; 

public class MainActivity extends Activity 
{ 
    //-------------------------------------------------------------- OpenHttpConnection()------------------------------------------------// 
    private InputStream OpenHttpConnection(String urlString) throws IOException 
    { 
      InputStream in = null; 
      int response = -1; 
      URL url = new URL(
        urlString); 
      URLConnection conn = url.openConnection(); 
      if (!(conn instanceof HttpURLConnection)) 
      throw new IOException("Not an HTTP connection"); 
      try 
      { 
       HttpURLConnection httpConn = (HttpURLConnection) conn; 
       httpConn.setAllowUserInteraction(false); 
       httpConn.setInstanceFollowRedirects(true); 
       httpConn.setRequestMethod("GET"); 
       httpConn.connect(); 
       response = httpConn.getResponseCode(); 
       if(response == HttpURLConnection.HTTP_OK) 
       { 
        in = httpConn.getInputStream(); 
       } 
      } 
      catch (Exception ex) 
      { 
       throw new IOException("Error connecting"); 
      } 
      return in; 
      } 
      //--------------------------------------------------OpenHttpConnection ends here-------------------------------------------------------------// 
      //--------------------------------------------------Download Plain Text Files (RSS) --------------------------------------------------------------// 
    private String DownloadText(String URL) 
    { 
     int BUFFER_SIZE = 2000; 
     InputStream in = null; 
     try 
     { 
      in = OpenHttpConnection(URL); 
     } 
     catch (IOException e1) 
     { 
      Toast.makeText(this, e1.getLocalizedMessage(), Toast.LENGTH_LONG)  .show(); 
      e1.printStackTrace(); 
      return ""; 
     } 
     InputStreamReader isr = new InputStreamReader(in); 
     int charRead; 
     String str = ""; 
     char[] inputBuffer = new char[BUFFER_SIZE]; 
     try 
     { 
      while ((charRead = isr.read(inputBuffer))>0) 
      { 
       //---convert the chars to a String--- 
       String readString = String.copyValueOf(inputBuffer, 0, charRead); 
       str += readString; 
       inputBuffer = new char[BUFFER_SIZE]; 
      } 
      in.close(); 
     } 
     catch (IOException e) 
     { 
      Toast.makeText(this, e.getLocalizedMessage(), Toast.LENGTH_LONG) .show(); 
      e.printStackTrace();    
      return ""; 
     } 
     return str; 
    } 
    //-------------------------------------------------DownloadText() ends here--------------------------------------------------------------------------// 
    //-------------------------This method downloads "PLAIN TEXT FILES"-------------------------------------------------------------------------// 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     String str = DownloadText("http://www.appleinsider.com/appleinsider.rss"); 
       Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG) .show(); 
    } 
} 
+0

überprüfen Sie bitte, ob es eine Ausnahmebedingungsnachricht in der LogCat –

+0

, welche Probleme Sie konfrontiert sind, und fügen Sie Ihren Fehler bei Problemen –

+0

Mr. Agrawal, gibt es keinen Fehler. Wenn ich meine App starte, sehe ich den Namen meiner Aktivitätsklasse. Ich sehe die Ausgabe (HTML-Seite) für etwa eine Sekunde und dann verschwindet es sofort. Ich versuchte, die Dauer der Toast-Klasse zu erhöhen, aber ohne Erfolg. hier ist es: – Niteesh

Antwort

0

Sie sagen, „der Ausgang innerhalb einer verschwindet secon ". Aber Sie zeigen es in einer Toast. Und das ist, was ein Toast tun soll: Schauen Sie sich die documentation - "Die Benachrichtigung wird automatisch ein- und ausgeblendet, und keine Interaktionsereignisse akzeptieren". Es ist die gewünschte Funktionalität, kein Problem.

Die Länge eines Toasts ist entweder Toast.LENGTH_SHORT oder Toast.LENGTH_LONG. Wenn Sie eine Benachrichtigung für einen längeren Zeitraum anzeigen möchten, sollten Sie die Verwendung von Dialog oder DialogFragment oder StatusBarNotification in Erwägung ziehen. Oder wenn Sie nicht möchten, dass es verschwindet, legen Sie es einfach in eine Ansicht, z. TextView.