【问题标题】:Worker not working with Samsung S10 Android 9 on background and killed app工人无法在后台使用三星 S10 Android 9 并杀死应用程序
【发布时间】:2020-04-12 00:46:49
【问题描述】:

我想做一个周期性的过程,每 X 分钟显示一次通知,关闭应用程序,在后台等等。

我使用工人管理器,在模拟器 Pixel 2 API 28 上工作正常,但在我的三星 Galaxy S10 API 28 上仅在用户使用应用程序时工作(而不是在应用程序处于后台、关闭等时)。

我读了很多关于,应用程序没有暂停,电池充电器等。 我打电话给工人的时候我的代码。

 PeriodicWorkRequest work = new PeriodicWorkRequest.Builder(WorkerCucu.class, 15, TimeUnit.MINUTES, 5, TimeUnit.MINUTES).build();

   // OneTimeWorkRequest oneTimeWorkRequest= new OneTimeWorkRequest.Builder(WorkerCucu.class).setInitialDelay(1,TimeUnit.MINUTES).build();
    WorkManager.getInstance(context).enqueue(work);

和工人

public class WorkerCucu extends Worker {
    public static String TAG = "WorkerCucu";
    Context ctx;

    public WorkerCucu(@NonNull Context context, @NonNull WorkerParameters workerParams) {
         super(context, workerParams);
        Log.d(TAG, "On constructor");
        this.ctx=context;
    }

    @NonNull
    @Override
    public Result doWork() {
       // OneTimeWorkRequest oneTimeWorkRequest= new OneTimeWorkRequest.Builder(WorkerCucu.class).setInitialDelay(1, TimeUnit.MINUTES).build();
        //WorkManager.getInstance(ctx).enqueue(oneTimeWorkRequest);
        Log.d(TAG, "On dowork");
        if(ctx!=null) {
            SharedPreferences prefs = ctx.getSharedPreferences("CUCU", ctx.MODE_PRIVATE);
            prefs.edit().putLong("lastcucu",new Date().getTime()).apply();
            prefs.edit().commit();
            showNotification(ctx);

        }
        return Result.success();

    }
    public void showNotification(Context context){
        Log.d("onReceive", "ladskjflsakjdflskjdflskjdfslkjdflasdf");
      //  Toast.makeText(context, "OnReceive alarm test", Toast.LENGTH_SHORT).show();

        SharedPreferences preferences =context.getSharedPreferences("cucu",Context.MODE_PRIVATE);

        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "channel_1")
                .setSmallIcon(R.drawable.ajustes_ima_cucu)
                .setContentTitle("Bible Cucu")
                .setContentText("Tu versiculo a cada momento")
                .setPriority(NotificationCompat.PRIORITY_DEFAULT);
        Intent intentMain=new Intent(context, MainActivity.class);
        intentMain.putExtra("inicia_cucu", true);


        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intentMain, 0);

        builder.setContentIntent(pendingIntent);


        NotificationManagerCompat not=NotificationManagerCompat.from(context);
        not.notify(1231,builder.build());
    }
}

谢谢!!

【问题讨论】:

  • 您找到解决方案了吗?我面临着类似的问题。

标签: android background worker


【解决方案1】:

不确定您是否找到了解决方案。确保在构建时签署 apk。否则,应用从“最近”中删除时会被强制停止

【讨论】:

    猜你喜欢
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多