2014-02-12 27 views
0

我開發了一個應用程序與Wi-Fi連接。在該應用程序縱向/橫向轉換時,在旋轉手機並中斷套接字連接時重新啓動活動。然後我添加肖像到AndroidManifest.xml文件,然後問題得到解決。我想知道這是對Async-Task的縱向/橫向轉換效果嗎?是AsyncTask的縱向/橫向過渡效果

<activity 
android:name="login" 
android:label="@string/login_title" 
android:configChanges="orientation|screenSize" > 
</activity> 

Login.java文件

import android.app.Activity; 
    import android.app.AlertDialog; 
    import android.content.DialogInterface; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.EditText; 

    public class login extends Activity { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.login); 
      try{ 


      Button buttonSignin = (Button) this.findViewById(R.id.btnSignIn); 
//This is the place gives nullpointerException 
      buttonSignin.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 

         EditText user=(EditText) findViewById(R.id.txtUserName); 
         EditText pass=(EditText) findViewById(R.id.txtPassword); 

         if(user.getText().toString()== "") 
         { 

          return; 
         } 

         else if(pass.getText().toString()== "") 
         { 

          return; 
         } 
         else 
         { 
          LoginRequest reqs_login = new LoginRequest(login.this,login.this); 
          reqs_login.where="Login_Data"; 
          reqs_login.title="Login"; 
          reqs_login.username=user.getText().toString(); 
          reqs_login.password=pass.getText().toString(); 

          reqs_login.execute(); 
         } 

        } 
       }); 

      } catch (NullPointerException e) { 
       e.printStackTrace(); 
       //Toast.makeText(getBaseContext(), "Error:1 on uplod file", Toast.LENGTH_LONG).show(); 

      } catch (Exception e) { 
       e.printStackTrace(); 
       //Toast.makeText(getBaseContext(), "Error:2 File may be already exists", Toast.LENGTH_LONG).show(); 

      } 

     } 

     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      super.onActivityResult(requestCode, resultCode, data); 

     } 


    } 
+0

http://stackoverflow.com/questions/3821423/background-task-progress-dialog-orientation-change-is-there-any-100-working –

+0

張貼您的登錄xml文件 – Piyush

+0

什麼是新的LoginRequest (login.this,login.this)... ?? – Ranjit

回答

0

使用這個在你的AndroidManifest.xml活動,

機器人:configChanges = 「方向|屏幕尺寸」

的工作我在AsyncTask也

+0

當我添加這個我在setOnClickListener中得到了nullpointerexception。在AndroidManifest.xml中添加肖像時也會發生這種情況 –

+0

您可以發佈錯誤日誌嗎? –

0

我猜答案是NO,因爲異步任務(後臺任務)一旦開始在後臺執行,它不會停止,直到完成後臺代碼的執行。無論應用程序處於哪種狀態,即使應用程序被最小化,也不會影響異步任務。所以改變風景/人像模式不會影響AsyncTAsk(InBackground)方法。希望這將有助於...

0

什麼是保留活動對象的最佳方式 - 例如跨設備配置更改的運行線程,套接字和AsyncTasks?

Deprecated: Override onRetainNonConfigurationInstance() 

轉移跨過活動實例的活動對象僅僅是在onRetainNonConfigurationInstance()返回活動對象和在getLastNonConfigurationInstance()檢索它的問題。由於API 13,這些方法已經在贊成更多片段的setRetainInstance(true/false)

Recommended: Manage the Object Inside a Retained Fragment 

Fragment#setRetainInstance(true)不贊成讓我們繞過這個破壞,和重新創建週期

欲瞭解更多詳情,請通過以下

Handling Configuration Changes

希望這會對你有幫助。