即使关闭

时间:2016-05-06 20:48:38

标签: android background

我初学者使用android,我想让我的应用程序在后台运行循环行为,即使它已关闭。 有人能帮我吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

您需要创建后台服务。请注意,您还需要创建一个在此服务运行期间可见的通知:

public class BgService extends Service {
    @Override
    public int onStartCommand(Intent i, int flags, int startId) {
        startForeground(C.MAIN_SERVICE_NOTIFICATION_ID, buildNotification(getString(R.string.service_title)));
        return START_NOT_STICKY;
    }

    protected Notification buildNotification(String content) {
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        builder.setTicker(getString(R.string.app_name))
                .setContentTitle(getString(R.string.app_name))
                .setContentText(content)
                .setSmallIcon(R.drawable.notification_icon)
                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.app_icon))
                .setWhen(System.currentTimeMillis())
                .setAutoCancel(false)
                .setOngoing(true)
                .setContentIntent(pendingIntent);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
            builder.setPriority(Notification.PRIORITY_HIGH);

        Notification notification = builder.build();
        notification.flags |= Notification.FLAG_NO_CLEAR;
        return notification;
    }
}

您可以从应用程序启动此服务:

public class MyApp extends Application {
    @Override
    public void onCreate() {
        startService(new Intent(this, BgService.class));
    }
}