У меня есть служба, которая должна запускать приложение и считать каждые 15 секунд.Запуск приложения изнутри Служба
AlarmManager
создать и вызвать службу каждая проблема 15 second.The когда я нажимаю класс кнопка запуска программы запуска службы и откройте приложение и начать считать, но когда я нажать кнопку остановки приложения получить ошибки
"Unfortunately, Program has stopped."
После этого программа автоматически начинает отсчет и открывает приложение , и я не могу это прекратить.
Я не могу понять. любая помощь или что-то новое может это сделать. Благодарю.
Myservice.java
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
public class Myservice extends Service{
int counter=0;
public IBinder onBind(Intent arg0)
{
return null;
}
public void onCreate() {
Toast.makeText(getApplicationContext(), "Service Created", Toast.LENGTH_SHORT).show();
}
@SuppressWarnings("deprecation")
public void onStart(Intent intent, int startId)
{
super.onStart(intent, startId);
Startapp();
counter++;
Toast.makeText(getApplicationContext(), "Service Start : " + counter,Toast.LENGTH_SHORT).show();
}
public void onDestroy()
{
Toast.makeText(getApplicationContext(), "Service Destroy", Toast.LENGTH_SHORT).show();
super.onDestroy();
}
public void Startapp()
{
Intent in = getPackageManager().getLaunchIntentForPackage("com.example.application");
startActivity(in);
Toast.makeText(getApplicationContext(), "Counter : " + counter, Toast.LENGTH_SHORT).show();
}
}
MainActivity.java
import java.util.Calendar;
import java.util.List;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
Intent myIntent;
PendingIntent pendingIntent;
AlarmManager alarmManager;
Button btn1;
Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button)findViewById(R.id.button1);
btn2 =(Button)findViewById(R.id.button2);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
myIntent = new Intent(MainActivity.this, Clash.class);
pendingIntent = PendingIntent.getService(MainActivity.this, 7778, myIntent, 0);
alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),15000, pendingIntent);
Toast.makeText(MainActivity.this, "Start Alarm", Toast.LENGTH_LONG).show();
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
alarmManager.cancel(pendingIntent);
pendingIntent.cancel();
Toast.makeText(MainActivity.this, "Cancel!", Toast.LENGTH_LONG).show();
}
});
}
удалить pendingIntent. Отмена(); –
@kozaxinan Я пытаюсь удалить pendingIntent.cancel(); но все же ничего нет –
call alarmManager = (AlarmManager) getSystemService (ALARM_SERVICE); перед alarmManager.cancel (pendingIntent); и проверьте pendingIntent для null. –