bitirdikten sonra devam onCreate()
onCreate
yöntemin içinde bir aktiviteyi bitirmek istiyorum. finish()
, onDestroy()
hemen çağrılmaz aradığımda kodu finish()
son akan tutar. onDestroy()
onCreate()
kapanış ayracı sonrasına kadar değil.
Developer.android.com/reference onCreate()
açıklama başına.
Bitirmek diyebilirsin() bu durumda bu işlev içinde, () onDestroy hemen geri kalanı olmadan çağrılır ((), onStart, onResume(), onPause(), vb) faaliyet döngüsü yürütülüyor.
Ben sormak nedeni: veri kontrol Paketi onCreate()
. geçirilen istiyorum Elbette onCreate
geçti, ve ne denetim var ama hala teslim noktasında teslim edilmesi gerektiğini düşünüyorum.
Benim kod içeren sınıf Etkinliği B
başlatan A
,. Son iki "eğer dışında yan" etiketleri, if
deyim finish
yöntemin etkinliği yok etmeliydi çünkü adı olmamalı. finish()
sonra etiket satırı yine de okuyun çünkü tümcesi ile bir ilgisi yok.
Benim Kod:
Bir Sınıf
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// goToBButton: when pressed sends message to class B.
Button goToBButton = (Button)this.findViewById(R.id.go_to__b_btn);
goToBButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick (View v) {
Log.i(TAG,"A Class: goToBButton, onClick");
Intent i = new Intent(A.this, B.class);
startActivityForResult(i,REQ_TO_B);
}
});
} // end onCreate
Benim Kod ClassB
public class B extends Activity{
private static final String TAG = "tag";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutb);
// set as true, should always print Tag: one line before first finish"
if (true) {
Log.i(TAG,"B Class: one line before 1st finish");
finish();
}
// shouldn't get here after first finish
Log.i(TAG,"B Class: outside of if clause, before second finish");
finish();
// shouldn't get here after second finish
Log.i(TAG,"B Class: outside of if clause, after finish");
} // end onCreate
@Override
public void onStart () {
super.onStart();
Log.i(TAG,"B Class: onStart");
}
@Override
public void onRestart() {
super.onRestart();
Log.i(TAG,"B Class: onRestart");
}
@Override
public void onResume () {
super.onResume();
Log.i(TAG,"B Class: onResume");
}
@Override
public void onPause () {
super.onPause();
Log.i(TAG,"B Class: onPause");
}
@Override
public void onStop () {
super.onStop();
Log.i(TAG,"B Class: onStop");
}
@Override
public void onDestroy () {
super.onDestroy();
Log.i(TAG,"B Class: onDestroy");
}
} // end B Class
İşte benim etiket sonuçları:
11-26 15:53:40.456: İNFO/tag(699): Sınıf: goToBButton, özelliği
11-26 15:53:40.636: İNFO/tag(699): Sınıf: onPause
11-26 15:53:40.865: İNFO/tag(699): B Sınıfı: bir satır 1 önce bitirmek
11-26 15:53:40.896: İNFO/tag(699): eğer tümcesi dışında B Sınıfı: ikinci bitir önce
11-26 15:53:40.917: İNFO/tag(699): eğer tümcesi dışında B Sınıfı: bitirdikten sonra
11-26 15:53:41.035: İNFO/tag(699): Sınıf: onResume
11-26 15:53:41.165: İNFO/tag(699): B Sınıfı: onDestroy
CEVAP
Bitir çünkü tahminimce() dönmek için onCreate yöntemini neden olmaz. Sadece ekleyerek deneyebilirsiniz
finish();
return;
Veya başka bir kullanın
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutb);
if(good data){
//do stuff
}else{
finish();
}
}
Could not load bağımlılıkları dosya ve...
Neden Sql Server xact_abort açık olduğ...
Nasıl geçerli sekmeyi etkin sayfayı ye...
HTTP yanıtı gönderdikten sonra PHP yür...
:Hover durumu için:önce yazmayı ve:son...