2012-04-06 2 views
0

출력이 너무 빨리 사라지는 이유를 말씀해 주시겠습니까?왜 이렇게 짧은 시간 동안 출력이 표시됩니까?

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

LogCat –

+0

에 어떤 예외 메시지가 있는지 확인하고 문제가있는 경우 오류를 붙여 넣으십시오. –

+0

Mr. Agrawal, 오류가 없습니다. 내 앱을 실행하면 내 Activity 클래스의 이름이 표시됩니다. 출력 (HTML 페이지)이 약 1 초 동안 표시되고 즉시 사라집니다. Toast 클래스의 지속 시간을 늘리려고했지만 아무 소용이 없었습니다. 여기에 있습니다 : – Niteesh

답변

0

당신은 "말할 출력이 내 사라진다 :

코드를 실행하려면, 당신은 당신의 AndroidManifest.xml 파일 아래

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

에 다음과 같은 필요한 코드입니다 secon ". 하지만 Toast에 표시합니다. Toast가해야 할 일입니다. documentation - "알림이 자동으로 페이드 인 및 페이드 아웃되고 상호 작용 이벤트를 허용하지 않습니다."를 확인하십시오. 원하는 기능이 아니라 문제입니다.

토스트의 길이는 Toast.LENGTH_SHORT 또는 Toast.LENGTH_LONG입니다. 오랜 기간 동안 알림을 표시하려면 사용자 정의 Dialog 또는 DialogFragment 또는 StatusBarNotification을 사용하십시오. 아니면 사라지 길 원한다면 단순히보기 안에 넣으십시오. TextView.

관련 문제