بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
restart شدن service بعد از بستن activity
سلام
یه برنامه ای نوشتم برای موزیک پلیر که سویس پخش موسیقی در Activity_Startup شروع میشود و بعد Activity_Main، سرویس رو Bound میکنه
مشکل اینه که وقتی برنامه از recent menu بسته میشه، سرویس restart میشه و متد های create و start سرویس دوباره اجرا میشن بدون اینکه متد destroy اجرا بشه و موسیقی در حال اجرا قطع میشه
الان چیکار باید بکنم تا سرویس ریستارت نشه و موسیقی در حال اجرا بمونه، مثل بقیه پلیر ها، برای مثال jetAudio
َ______________________Activity_Startup:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.form_startup);
Intent serviceIntent = new Intent(G.context, Service_Player.class);
startService(serviceIntent);
}
______________________Activity_Main:
public static Service_Player mPlayer;
private boolean mBound = false;
private ServiceConnection mServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
// We've bound to Service_Player, cast the IBinder and get Service_Player instance
PlayerBinder binder = (PlayerBinder) iBinder;
//get service
mPlayer = binder.getService();
mBound = true;
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
mBound = false;
}
};
@Override
protected void onDestroy() {
super.onDestroy();
// Unbind from the service
if (mBound) {
unbindService(mServiceConnection);
mBound = false;
}
}
@Override
protected void onStart() {
super.onStart();
// Bind to Service_Player
Intent serviceIntent = new Intent(G.context, Service_Player.class);
// bindService(serviceIntent, mServiceConnection, BIND_AUTO_CREATE);
bindService(serviceIntent, mServiceConnection, BIND_ABOVE_CLIENT);
}
______________________Service_Player:
// Binder given to clients
private final IBinder mBinder = new PlayerBinder();
/**
* Class used for the client Binder. Because we know this service always
* runs in the same process as its clients, we don't need to deal with IPC.
*/
public class PlayerBinder extends Binder {
public Service_Player getService() {
// Return this instance of Service_Player so clients can call public methods
return Service_Player.this;
}
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_NOT_STICKY;
// return START_STICKY;
// return super.onStartCommand(intent, flags, startId);
}
@Override
public IBinder onBind(Intent intent) {
super.onBind(intent);
return mBinder;
}
@Override
public boolean onUnbind(Intent intent) {
return super.onUnbind(intent);
}
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .