PDA

View Full Version : مشکل در بسته شدن برنامه



Sepehr M
جمعه 16 آبان 1393, 02:02 صبح
سلام...من یه مشکل کوچولو با خروج از برنامه دارم به طوری که وقتی روی صفحه منو دکمه خروج رو میزنم برنامه بسته نمیشه و صفحه منو دوباره میاد بالا باز باید خروج رو بزنم تا بشته شه...گاهی اوقات به 3بار هم میرسه تا بخواد خارج شه...دلیلش احتمال خیلی زیاد اینه که دستور finish(); رو بعد از دو تا OnClickListener وارد نکردم...این مشکل وقتی دستور فینیش رو وارد میکنم حل میشه ولی وقتی تو شروع برنامه میرم به صفحه ورود موزیک قطع میشه...یعنی مشکل خروج حل میشه و مشکل قطع صدا پیش میاد...کسی میتونه کمک کنه؟ این هم کدهای صفحه منو:

package tlou.comic.book;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;


public class menu extends Activity {

MediaPlayer mp;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mp = MediaPlayer.create(menu.this, R.raw.theme);
mp.setLooping(true);
mp.start();

ImageView myimg = (ImageView) findViewById(R.id.enter);
myimg.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
startActivity(new Intent(menu.this, t1.class));
}
});

ImageView myimg1 = (ImageView) findViewById(R.id.about);
myimg1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
startActivity(new Intent(menu.this, skykidz.class));
}
});

ImageView myimg2 = (ImageView) findViewById(R.id.exit);

myimg2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
android.os.Process.killProcess(android.os.Process. myPid());
finish();
System.exit(0);
}
});
}


@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mp.stop();

}
}

StoPpeR
جمعه 16 آبان 1393, 09:22 صبح
اولا گوگل بار ها تاکید کرده که لایف سایکل اندروید خیلی پیشرفته اس و لازم نیست شما برنامه تون رو خودتون ببندین و به اجبار killprocess کنین، بلکه این کار باید توسط یوزر با کلید های خود گوشی (back یا home) انجام بشه

دوما بهتر نبود منو رو توی یه اکتیویتی جدا نمی گذاشتین و توی همون صفحه اول گزینه ها رو توی navigation یا actionbar قرار می دادید؟
چون اگه بخواین finish رو توی اکتیویتی اول بعد از onclick قرار بدید و بعد به منو برین خب مطمئنا هر فعالیتی که توی اون اکتیویتی باشه متوقف میشه و همون مشکلی که گفتین پیش میاد
اما اگه می خواین حتما به این شکل باشه باید بگم بهترین راه برای شما استفاده از onActivityforResultـه که بسته به انتخاب یوزر از منو بتونین در اکتیویتی اصلی کاری رو انجام بدین و نیازی هم به finish کردن اکتیویتی اول نباشه

آموزش هاش هم توی فروم فک کنم باشه ولی خب اگه نبود بگین تا واستون مثال بزنم ازش

Sepehr M
جمعه 16 آبان 1393, 17:10 عصر
ممنون بابت پاسخ
ولی کلا فرقی نمیکنه اگه بخوام با دکمه back گوشی هم از برنامه خارج شم باز همین داستانه...
اون متد هم که گفتید من الا جای public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);



دارم از
public void onActivityResult
{

استفاده میکنم ولی خب وفتی اجرا میکنم هیچی نمیاد...میدونم که این روشی که من دارم از این متد استفاده میکنم خرابه 99% ولی چون بار اولمه و آشنایی باش ندارم یکم بیشتر توضییح بدید ممنون میشم