๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ‘จ๐Ÿผ‍๐Ÿ’ป๊ฐœ๋ฐœ/์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค - ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰(์„œ๋น„์Šค) ๊ด€๋ จ ์˜ˆ์ œ ์ฝ”๋“œ

by Janger 2024. 10. 13.
728x90
๋ฐ˜์‘ํ˜•

 

 

Create a service

 

public class YourService extends Service {

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // do your jobs here
        return super.onStartCommand(intent, flags, startId);
    }
}

 

 

Create an Application class and start your service

 

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        startService(new Intent(this, YourService.class));
    }
}

 

 

Add "name" attribute into the "application" tag of your AndroidManifest.xml

 

android:name=".App"

 

 

Also, don't forget to add your service in the "application" tag of your AndroidManifest.xml

 

<service android:name=".YourService"/>

 

 

And also this permission request in the "manifest" tag (if API level 28 or higher)

 

<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

 

 

 

UPDATE

 

 

public class YourService extends Service {

    private static final int NOTIF_ID = 1;
    private static final String NOTIF_CHANNEL_ID = "Channel_Id";

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId){

        // do your jobs here

        startForeground();
        
        return super.onStartCommand(intent, flags, startId);
    }

    private void startForeground() {
        Intent notificationIntent = new Intent(this, MainActivity.class);

        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
                notificationIntent, 0);

        startForeground(NOTIF_ID, new NotificationCompat.Builder(this, 
                NOTIF_CHANNEL_ID) // don't forget create a notification channel first
                .setOngoing(true)
                .setSmallIcon(R.drawable.ic_notification)
                .setContentTitle(getString(R.string.app_name))
                .setContentText("Service is running background")
                .setContentIntent(pendingIntent)
                .build());         
    }
}

 

 

 

์ถœ์ฒ˜:

https://stackoverflow.com/questions/34573109/how-to-make-an-android-app-to-always-run-in-background

 

How to make an android app to always run in background?

I'm using an android device. When I open the Settings > Apps > Running, there is an option on the top-left of the screen to see : (1) Running processes (2) Cached background processes. And th...

stackoverflow.com

 

728x90
๋ฐ˜์‘ํ˜•