я знаю Android WorkManager, но я не знаю, как его использовать - PullRequest
0 голосов
/ 23 июня 2018

У меня есть приложение, которое уведомляет пользователя, когда устройство подключается к Интернету.я использую workmanager, и он работает нормально, но только когда приложение запущено!

это предполагает уведомление людей, когда они подключаются к Интернету, даже когда оно не работает!как это сделать!?

это мое первое занятие:

public class WorkActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_work);

    Intent intent = new Intent();
    PendingIntent pendingIntent = PendingIntent.getActivity(WorkActivity.this,0,intent,0);
    Constraints constraints = new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build();
    NotifyWorker.pendingIntent = pendingIntent;
    NotifyWorker.context = this;
    OneTimeWorkRequest oneTimeWorkRequest = new OneTimeWorkRequest.Builder(NotifyWorker.class).setConstraints(constraints).build();
    WorkManager workManager = WorkManager.getInstance();
    workManager.enqueue(oneTimeWorkRequest);

}

}

и это мой рабочий класс:

public class NotifyWorker extends Worker {

public static Context context;
public static PendingIntent pendingIntent;

@NonNull
@Override
public Result doWork() {
    Log.i("wd","wd");

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context,"con")
            .setSmallIcon(R.mipmap.ic_launcher)
            .setLargeIcon(BitmapFactory.decodeResource(context.getResources(),R.mipmap.ic_launcher))
            .setSmallIcon(R.drawable.logo)
            .setContentTitle("Title")
            .setContentText("Desc")
            .setContentIntent(pendingIntent);

    android.app.NotificationManager notificationManager =
            (android.app.NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(0 , notificationBuilder.build());

    return Result.SUCCESS;
}

}

Я запутался: / Пожалуйста, помогите!

...