Autore Topic: Problema con startActivity  (Letto 871 volte)

Offline mosine

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S Advance
Problema con startActivity
« il: 28 Ottobre 2014, 08:52:12 CET »
0
Salve a tutti,
ho un problema con startActivity che mi accade solo con la versione 4.1.2 di Android: quando lancio startActivity, nella versione 4.1.2 mi ritorna alla onStart della activity chiamante. questo è il mio codice:
                        Intent miaIntent;
         miaIntent = new Intent(getApplicationContext(), Alarms.class);
         try{
            for(i=0; i<16; i++){
               miaIntent.putExtra("allarmiBuff"+i, allarmi);
            }
            startActivity(miaIntent);
         }catch(Exception e){}

Ho provato anche ad inserire prima di startActivity: this.onPause e miaIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); , ma niente da fare.
Come posso risolvere? Grazie
« Ultima modifica: 28 Ottobre 2014, 08:54:13 CET da mosine »

iClaude

  • Visitatore
Re:Problema con startActivity
« Risposta #1 il: 28 Ottobre 2014, 10:47:33 CET »
0
Specifica meglio il problema: la seconda activity parte o no?
Cmq l'errore è quasi sicuramente nella seconda activity.

Offline mosine

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S Advance
Re:Problema con startActivity
« Risposta #2 il: 28 Ottobre 2014, 12:24:32 CET »
0
Grazie per la risposta.
il pezzo di codice che ho scritto nel precedente post, è il codice che viene eseguito al click di un pulsante della PRIMA activity. Adesso sto provando senza aggiungere nulla all'Intent :

public void onOpenAlarmPage(View view){
      int i = 0;
      if(pwdOk){
         Intent miaIntent;
         miaIntent = new Intent(getApplicationContext(), Alarms.class);
         try{
            this.startActivity(miaIntent);
         }catch(Exception e){}
      }
   }

in questa versione di android (4.1.2), la SECONDA activity viene aperta per circa 1 secondo, poi si chiude e viene chiamato l'onStart della PRIMA activity.
Il codice della SECONDA ACTIVITY è il seguente:
public class Alarms extends Activity {
   public ListView listAlarms;
   public String[] allarmi = new String[16];
   
   @Override
   protected void onDestroy(){
      super.onDestroy();
   }
   
   
   @Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
       if ((keyCode == KeyEvent.KEYCODE_BACK)) {
           return false;
       }
       return super.onKeyDown(keyCode, event);
   }
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_alarms);
   }
   
   public void onBack(View view){
      finish();
   }
}

Spero di essere stato chiaro.
 

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:Problema con startActivity
« Risposta #3 il: 28 Ottobre 2014, 14:37:46 CET »
0
Per cortesia, formatta il codice usando l'apposita funzione ( basta evidenziare il codice e cliccare il tastino )
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline mosine

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S Advance
Re:Problema con startActivity
« Risposta #4 il: 28 Ottobre 2014, 15:04:50 CET »
0
Scusa bradipao.
il pezzo di codice che ho scritto nel precedente post, è il codice che viene eseguito al click di un'image della PRIMA activity. Adesso sto provando senza aggiungere nulla all'Intent :
Codice (Java): [Seleziona]
public void onOpenAlarmPage(View view){
      int i = 0;
      if(pwdOk){
         Intent miaIntent;
         miaIntent = new Intent(getApplicationContext(), Alarms.class);
         try{
            this.startActivity(miaIntent);
         }catch(Exception e){}
      }
   }

in questa versione di android (4.1.2), la SECONDA activity viene aperta per circa 1 secondo, poi si chiude e viene chiamato l'onStart della PRIMA activity.
Il codice della SECONDA ACTIVITY è il seguente:
Codice (Java): [Seleziona]
public class Alarms extends Activity {
   public ListView listAlarms;
   public String[] allarmi = new String[16];
   
   @Override
   protected void onDestroy(){
      super.onDestroy();
   }
   
   
   @Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
       if ((keyCode == KeyEvent.KEYCODE_BACK)) {
           return false;
       }
       return super.onKeyDown(keyCode, event);
   }
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_alarms);
   }
   
   public void onBack(View view){
      finish();
   }
}
MALFUNZIONAMENTO SOLO NELLA VERSIONE 4.1.2

nel frattempo ho fatto altre prove. Nella PRIMA Activity è presente una connessione bluetooth e quando lancio la SECONDA activity, questa SECONDA activity crasha in OnCreate, con il messaggio "Connection Refused". 
In poche parole questa SECONDA ACTIVITY è solo di visualizzazione e quindi non capisco perché mi dovrebbe dare connessione rifiutata.
 

iClaude

  • Visitatore
Re:Problema con startActivity
« Risposta #5 il: 28 Ottobre 2014, 16:14:11 CET »
0
Nella seconda activity non c'è nulla di strano,  quindi il problema è altrove,  probabilmente nella connessione bluetooth come hai scritto tu.

Offline mosine

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S Advance
Re:Problema con startActivity
« Risposta #6 il: 28 Ottobre 2014, 17:25:10 CET »
0
Grazie per la risposta.
Dopo vari test, ho scoperto che il problema in questa versione è dovuto al fatto che quando lancio startActivity viene richiamato l'onCreate della PRIMA Activity dove effettuo la connessione bluetooth; quindi parte la SECONDA activity, ma nel frattempo viene chiamato l'onCreate della PRIMA. Com'è possibile? E soprattutto perché solo per questa versione di Android? Ho provato la mia app su diverse versioni Android e ha funzionato perfettamente.
 

iClaude

  • Visitatore
Re:Problema con startActivity
« Risposta #7 il: 28 Ottobre 2014, 17:32:17 CET »
0
Grazie per la risposta.
Dopo vari test, ho scoperto che il problema in questa versione è dovuto al fatto che quando lancio startActivity viene richiamato l'onCreate della PRIMA Activity dove effettuo la connessione bluetooth; quindi parte la SECONDA activity, ma nel frattempo viene chiamato l'onCreate della PRIMA. Com'è possibile? E soprattutto perché solo per questa versione di Android? Ho provato la mia app su diverse versioni Android e ha funzionato perfettamente.

Mi sembra impossibile: se lanci la seconda activity sulla prima viene chiamato onPause e onStop, non onCreate.
Non è che l'app prima va in crash e poi viene riavviata? Prova a mettere dei Log. nei vari metodi delle activity e vedere quali sono chiamati e in che ordine.

Offline mosine

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S Advance
Re:Problema con startActivity
« Risposta #8 il: 18 Febbraio 2015, 12:33:06 CET »
0
Ciao,
sono tornato e il problema non è stato risolto. Il telefono in questione è un Samsung Galaxy core.
Quando viene lanciata la nuova Activity, per circa 1 secondo si visualizza dopodiché appare nel  LogCat il seguente errore:

02-18 12:27:58.400: D/AbsListView(14589): Get MotionRecognitionManager
02-18 12:27:58.410: D/AbsListView(14589): Get MotionRecognitionManager
02-18 12:27:58.630: E/SpannableStringBuilder(14589): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
02-18 12:27:58.640: E/SpannableStringBuilder(14589): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
02-18 12:27:58.660: I/Process(14589): Sending signal. PID: 14589 SIG: 9
02-18 12:27:58.770: D/ActivityThread(14769): setTargetHeapUtilization:0.25
02-18 12:27:58.770: D/ActivityThread(14769): setTargetHeapIdealFree:8388608
02-18 12:27:58.770: D/ActivityThread(14769): setTargetHeapConcurrentStart:2097152
02-18 12:27:58.910: D/AbsListView(14769): Get MotionRecognitionManager
02-18 12:27:58.980: V/BluetoothSocket.cpp(14769): initSocketNative
02-18 12:27:58.980: V/BluetoothSocket.cpp(14769): ...fd 47 created (RFCOMM, lm = 0)
02-18 12:27:58.980: V/BluetoothSocket.cpp(14769): initSocketFromFdNative
02-18 12:27:58.980: V/BluetoothSocket.cpp(14769): initSocketNative
02-18 12:27:58.980: V/BluetoothSocket.cpp(14769): ...fd 50 created (RFCOMM, lm = 0)
02-18 12:27:58.980: V/BluetoothSocket.cpp(14769): initSocketFromFdNative
02-18 12:27:59.150: V/BluetoothSocket.cpp(14769): connectNative
02-18 12:27:59.250: V/BluetoothSocket.cpp(14769): ...connect(50, RFCOMM) = 111 (errno 111)
02-18 12:27:59.260: V/BluetoothSocket.cpp(14769): abortNative
02-18 12:27:59.260: V/BluetoothSocket.cpp(14769): ...asocket_abort(50) complete
02-18 12:27:59.260: V/BluetoothSocket.cpp(14769): destroyNative
02-18 12:27:59.260: V/BluetoothSocket.cpp(14769): ...asocket_destroy(50) complete
02-18 12:27:59.430: D/libEGL(14769): loaded /system/lib/egl/libEGL_adreno200.so
02-18 12:27:59.440: D/libEGL(14769): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
02-18 12:27:59.440: D/libEGL(14769): loaded /system/lib/egl/libGLESv2_adreno200.so
02-18 12:27:59.450: I/Adreno200-EGL(14769): <qeglDrvAPI_eglInitialize:299>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.02.21.107_msm8625_JB_REL_2.0.3_CL3357771_release_AU (CL3357771)
02-18 12:27:59.450: I/Adreno200-EGL(14769): Build Date: 02/25/13 Mon
02-18 12:27:59.450: I/Adreno200-EGL(14769): Local Branch:
02-18 12:27:59.450: I/Adreno200-EGL(14769): Remote Branch: quic/jb_rel_2.0.3
02-18 12:27:59.450: I/Adreno200-EGL(14769): Local Patches: NONE
02-18 12:27:59.450: I/Adreno200-EGL(14769): Reconstruct Branch: AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.02.21.107 +  NOTHING
02-18 12:27:59.470: D/OpenGLRenderer(14769): Enabling debug mode 0
02-18 12:28:33.570: W/IInputConnectionWrapper(14769): getSelectedText on inactive InputConnection
02-18 12:28:33.580: W/IInputConnectionWrapper(14769): setComposingText on inactive InputConnection
02-18 12:28:33.580: W/IInputConnectionWrapper(14769): getExtractedText on inactive InputConnection


Ho letto diversi articoli e fatte tante ricerche, ma non ho ottenuto risultati.
Grazie per l'aiuto