2015-05-14 2 views
-2

Я создаю услугу, чтобы начать действие при нажатии кнопки. В первый раз начинается действие, но когда я закрыл активность или ушел, поскольку он открыт, а активность запускается службой автоматически. Помогите мне, я хочу, чтобы начальная активность только нажимала на кнопка не второй раз автоматически класс обслуживания Я использую следующий код-Как остановить вызов активности во второй раз классом обслуживания?

класс обслуживания

public class Myservise extends Service { 
     @Override 
     public IBinder onBind(Intent arg0) { 
      return null; 
     } 

     @Override 
     public int onStartCommand(Intent intent, int flags, int startId) { 
      // Let it continue running until it is stopped. 
      Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show(); 
      return START_STICKY; 
     } 
     @Override 
    public void onCreate() { 
     super.onCreate(); 
     Intent dialogIntent = new Intent(this, Demo.class); 
     dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(dialogIntent); 
    } 
     @Override 
     public void onDestroy() { 
      super.onDestroy(); 
      Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show(); 
     } 
     } 

Главной активность

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
       } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

     // Method to start the service 
     public void startService(View view) { 
      startService(new Intent(getBaseContext(), Myservise.class)); 
     } 
} 

Второй активность

public class Demo extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.demo); 
    } 

} 

Просьба помочь мне.

ответ

2

Сначала вы должны вернуть

return START_NOT_STICKY; 

в onStartCommand(..) в service.

и попытаться остановить службу на onDestroy();

Также см This SO POST

+0

Но как остановить службу от второй Активность мольбы объяснить –

+0

@GauriShankar Перейдите по ссылке, как я предусмотрено. –