확실히 앱을 닫으면 의 runInBackGround
메소드가 작동을 멈춘다는 점에 유의했습니다. 액티비티가 STOP
또는 PAUSE
단계에있을 때 작동하지만 앱을 닫으면 메서드가 완료됩니다 (주기가 while(true) {...}
인 루프). 예를 들어 Whatsapp는 알림을 보내도 어떻게 닫을 수 있습니까? 나는 비슷한 것을 만들고 싶다. 감사!Android : 앱이 완전히 닫힌 경우 앱 실행
-2
A
답변
0
앱을 닫으면 모든 코드 실행이 중지됩니다. 앱이 열려있는 상태에서 실행하고 앱이 종료 된 상태에서 코드를 계속 실행하려는 경우 using a Service.
서비스 설명서를 자세히 살펴보면 원하는 내용이 될 것입니다. . 앱이 닫히면 서비스가 종료되지만 START_STICKY 반환 값을 사용하면 종료시 서비스가 다시 시작될 수 있습니다. 더 많은 정보
편집 :
<service
android:name="MyService" />
당신의 AndroidManifest.xml
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// This is where you would place your code that you want in the background
// Putting your while loop here will make sure it runs when the app is closed
return Service.START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
//TODO for communication return IBinder implementation
return null;
}
}
에 위의 추가는 위의 코드와 함께 새로운 클래스를 만듭니다.
Intent i= new Intent(context, MyService.class);
startService(i);
런처 Activity에서이 코드를 호출하면 앱이 시작될 때 서비스가 시작됩니다.
희망이 도움이됩니다.
0
Asynctask는 백그라운드에서 수행해야하는 짧은 작업에 이상적입니다. 일반적으로 Asyntask는 응용 프로그램이 닫힐 때 파괴되는 활동의 하위 클래스로 구현됩니다. 또한 일부 지점에서 UI 스레드와 통신하므로 ... 메모리에 활동이 필요합니다. 장기간 실행하는 경우 서비스가 더 좋습니다. 일부 앱은 사용자가 실행 중이 아니더라도 사용자에게 알립니다. 실제로 그들은 백그라운드에서 하나 이상의 서비스가 실행 중입니다. 휴대 전화 설정 -> 응용 프로그램 메뉴에서 볼 수 있습니다. 서비스에 대한 자세한 내용은 this을 참조하십시오.
어떻게이 START_STICKY를 사용할 수 있습니까? – Tosch
@Tosch 내 편집 된 게시물보기 –
감사합니다. 내 문제를 해결했습니다. – Tosch