Mam opracowaną aplikację w Android 4.0.3 (Ice-cream Sandwich), używam dwóch działań, aby przetestować nawigację działania.Ale zaobserwowałem inne zachowanie w nawigacji Aktywności.Czy to nowa implementacja w systemie Android 4.0?
Wywołuję aktywność B z działania A. W działaniu B właśnie wywołuję metodę finish(). Abyśmy mogli zobaczyć poprzednią czynność A. Działa dokładnie tak, jak oczekiwano, ale problem dotyczy nawigacji wstecznej (metoda wywoływania zakończona lub naciśnięcie klawisza wstecznego), wywołuje metodę Utwórz działanie A) zamiast wywoływania funkcji onResume (). Ale w poprzednich wersjach nie zachowuje się w ten sposób. Czy to nowa implementacja w systemie Android 4.0?
Oto przykład, który I wdrożone:
Activity_A:
public class Activity_A extends Activity {
/** Called when the activity is first created. */
static int count=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView text=(TextView)findViewById(R.id.textcontent);
text.setText("Activity 1 called:"+(++count)+" Times");
}
public void onClick(View v)
{
Intent intent=new Intent(this,Activity2.class);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("onActivityResult", "Called with Code:"+resultCode);
}
}
Activity_B:
public class Activity_B extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView text=(TextView)findViewById(R.id.textcontent);
text.setText("Activity 2");
}
public void onClick(View v)
{
setResult(1);
finish();
}
}
należy sprawdzić i dać mi znać, jeśli robię żadnego błędu.
Dzięki, Ram.
Pytanie: Czy onResume przychodzi po onCreate? Wydaje mi się, że działanie A zostało porzucone przez Androida po wywołaniu Aktywności B - coś, co może się zdarzyć na wszystkich platformach Android. –