2014-02-12 2 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 = "ориентация | Размер экрана"

для рабочего me in AsyncTask также

+0

Когда я добавляю это, я получил nullpointerexception в setOnClickListener. Это случается, когда добавьте портрет в AndroidManifest.xml также –

+0

Можете ли вы опубликовать свой журнал ошибок? –

0

Я думаю, что ответ был бы НЕТ, потому что задача Async (фоновая задача) однажды начала выполнять inBackground, она не остановится до полного выполнения этого кода в фоновом режиме. Независимо от того, какое приложение находится в любом государстве, даже приложение сведено к минимуму, оно не влияет на задачу Async. Таким образом, изменение режима Landscape/Portrait не влияет на метод 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

Надеюсь, это вам поможет.