آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

وقتی دکمه Back رو میزنم به اکتیویتی قبل بر نمی گردد!! بلکه به دو اکتیویتی قبل بر می گردد!!

aydin  8 سال پیش  8 سال پیش
0 0

سلام  دوستان یه برنامه  محتوایی  دارم شامل  سی  اکتیویتی (آیتم)  که هر  اکتیویتی محتوای خاص خودشو داره  ، من یه منوی کشویی  کلی  تعریف  کردم که در  تمام  اکتیویتی ها باز  میشه ،محتوای  اکتیویتی های من شامل گوگل  مپ و  ویدئو  هستند که برای  اجرا  نیاز  به اینترنت دارن  ،  وقتی  منوی  کشویی  باز  میشه و روی  هرکدام از  آیتم  های  آن (تنظیمات ، منابع و  ...)کلیک می کنم   وارد  اکتیویتی جدید  میشه  ، مشکل  اینه  که  وقتی  دکمه Back  رو میزنم  تا وارد  همون اکتیویتی بشه  که  منوی  کشویی  در  آن باز  شده ، وارد  اون اکتیوتی  نمیشه بلکه از  اون  پرش می کنم  و  به دو اکتیوتی  قبل  برمی گرده  ، جالبیش اینه  که  ،وقتی  به  نت  وصل  نیست  عادی  و  صحیح  کار  می کنه  ولی  وقتی  به  نت  وصل  میشم ، این  مشکل  پیش میاد  

 

+1 0
احتمالا هنگام ورود به اکتیویتی حاضر اکتیویتی قبلی رو finish می کنید واسه همین با زدن دکمه بک به دو اکتیویتی قبل میره این مورد رو چک کنید. (8 سال پیش)
0 0
با تشکر از ارسال نظرتون ، بررسی کردم ولی هیچ مشکلی نداشت ،و هیچ کدی برای finish کردن اکتیویتی قبل استفاده نشده . مشکل اینه که وقتی به نت وصل نیست درست کار می کنه و به اکتیویتی قبل میره ولی وقتی به نت وصل میشم ، به دو اکتیویتی قبل میره ، نمیدونم وقتی به نت وصل میشه چه اتفاقی می افته که باعث میشه از اکتیویتی قبلی پرش بکنه (8 سال پیش)
+1 0
سلام ... به صورت پیشفرض اندروید در پشته همون ترتیبی که باز میشه اکتیویتی ذخیره میشن ... و وقتی شما تغییری ندادید نباید این اتفاق بیوفته ... خیلی عجیب هست .. حداقل اون قسمت کد رو که این اتفاق واستون میوفته رو بذارید شاید تونستیم کمک کنیم (8 سال پیش)
+1 0
خب ببررسی کنید ببینید وقتی دسترسی به نت دارید داخل کد مربوط به اتصال به اینترنت جایی اکتیویتی حاضر رو نمیبنده ؟ کدهای بخش ارتباط با اینترنت رو هم بذارید (8 سال پیش)
0 0
با تشکر از دوستانی که نظر دادن ، برا خود منم عجیبه ولی قطعا موقع وصل به نت یه بلایی سرش میاد که این اتفاق واسش می افته ، من از یه اسلایدر ویو استفاده می کنم برا نمایش عکس ها به صورت اسلاید که از نت لود میشن for(String name : hash1.keySet()){ TextSliderView txts = new TextSliderView(Marand.this); txts .description(name) .image(hash1.get(name)) .setScaleType(BaseSliderView.ScaleType.Fit) .setOnSliderClickListener( this); txts.bundle(new Bundle()); txts.getBundle().putString("extra",name); sl_mnd.addSlider(txts); } از تکستچر ویو استفاده می کنم برای نمایش ویدئو public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { Surface mnd_surface = new Surface(surface); try { mnd_mp.setDataSource(mnd_video); mnd_mp.setSurface(mnd_surface); mnd_mp.prepareAsync(); mnd_mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { img_mnd_play1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mnd_mp.start(); img_mnd_play1.animate().alpha(0).setDuration(2000); img_mnd_play2.setImageResource(R.drawable.pause48); } }); img_mnd_play2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mnd_mp.isPlaying()){ mnd_mp.pause(); img_mnd_play1.animate().alpha(1).setDuration(1000); img_mnd_play2.setImageResource(R.drawable.play48); }else { mnd_mp.start(); img_mnd_play1.animate().alpha(0).setDuration(2000); img_mnd_play2.setImageResource(R.drawable.pause48); } } }); } }); }catch (IOException e){ e.printStackTrace(); } } برای گرفتن زمان اتمام و زمان جاری ویدئو Mnd.this.runOnUiThread(new Runnable() { @Override public void run() { if (mnd_mp != null) { mnd_skb.setMax(mnd_mp.getDuration() / 1000); int cc = mnd_mp.getCurrentPosition() / 1000; mnd_skb.setProgress(cc); } mnd_han.postDelayed(this,1000); } }); و گوگل مپ public void onMapReady(GoogleMap googleMap) { mnd_map = googleMap; LatLng mnd = new LatLng(48.4350961,55.7715034); mnd_map.moveCamera(CameraUpdateFactory.newLatLngZoom(marand,13)); mnd_map.getUiSettings().setZoomControlsEnabled(true); mnd_map.getUiSettings().setCompassEnabled(true); (8 سال پیش)
0 0
از گوگل مپ استفاده کردم public void onMapReady(GoogleMap googleMap) { mnd_map = googleMap; LatLng mnd = new LatLng(38.4350961,45.7715034); mnd_map.moveCamera(CameraUpdateFactory.newLatLngZoom(mnd,13)); mnd_map.getUiSettings().setZoomControlsEnabled(true); mnd_map.getUiSettings().setCompassEnabled(true); (8 سال پیش)
+4 0
دوست عزیز به نظرت این کدی که تو کامنت گذاشتی رو گکسی میخونه آیا ؟ بهتر است در یک پاسخ جدید و در قالب کد قرار بدید که خوانا باشه (8 سال پیش)
0 0
دوستان میخام ، در یک اکتیوتی جدید مرحله به مرحله جلو برم و کد های مربوط به اینترنت رو یکی یکی پیاده کنم ببینم تا کجا درست کار می کنه و تو کدومش ارور میده ، بعدش کدی رو که ارور میده اینجا قرار میدم (8 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
aydin  8 سال پیش
0 0

دوستان  کد هایی  که وابسته به  نت بودن رو  یکی  یکی  در  اکتیوتی  جدید  اجرا  کردم  و  به  کدی  رسیدم  که باعث مشکل شده  لطفا  کمک کنید ببینیم  کجای  این  کد مشکل  داره  که در  موقع  زدن دکمه بک  اکتیویتی  قبل  بسته  میشه  

@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
Surface m_surface = new Surface(surface);
try {
m_mp.setDataSource(m_video);
m_mp.setSurface(m_surface);
m_mp.prepareAsync();
m_mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
img_m_play1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
m_mp.start();
img_m_play1.animate().alpha(0).setDuration(2000);
img_m_play2.setImageResource(R.drawable.pause48);

}
});
img_m_play2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (m_mp.isPlaying()){
m_mp.pause();
img_m_play1.animate().alpha(1).setDuration(1000);
img_m_play2.setImageResource(R.drawable.play48);
}else {
m_mp.start();
img_m_play1.animate().alpha(0).setDuration(2000);
img_m_play2.setImageResource(R.drawable.pause48);
}
}
});
}
});


}catch (IOException e){
e.printStackTrace();
}

پاسخ به سوال 
aydin  8 سال پیش
0 0

@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
Surface m_surface = new Surface(surface);
try {
m_mp.setDataSource(m_video);
m_mp.setSurface(m_surface);
m_mp.prepareAsync();
m_mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
img_m_play1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
m_mp.start();
img_m_play1.animate().alpha(0).setDuration(2000);
img_m_play2.setImageResource(R.drawable.pause48);

}
});
img_m_play2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (m_mp.isPlaying()){
m_mp.pause();
img_m_play1.animate().alpha(1).setDuration(1000);
img_m_play2.setImageResource(R.drawable.play48);
}else {
m_mp.start();
img_m_play1.animate().alpha(0).setDuration(2000);
img_m_play2.setImageResource(R.drawable.pause48);
}
}
});
}
});


}catch (IOException e){
e.printStackTrace();
}

پاسخ به سوال 
aydin  8 سال پیش
0 0

+1 0
به نظر نمیاد از این قسمت باشه ، اینو متد درخواست کلید back داخل کدهاتون سرچ بزنید ببینید جایی از کد شاید دو بار وجود داشته باشه ()onBackPressed (8 سال پیش)
+1 0
از این قسمت بود پیدا کردم و حل کردم ، قسمت آخر کد catch (IOException e){ e.printStackTrace(); } که قسمت e.printStackTrace کد رو حذف کردم مشکلم حل شد ، تشکر از دوستانی که نظر دادن (8 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .