小编Bip*_*and的帖子

具有定期请求的工作管理器多次调用

我正在使用工作经理进行定期任务.我要执行单个工作实例

我的代码如下

  val workManager = WorkManager.getInstance()
  val callDataRequest = PeriodicWorkRequest.Builder(MyLoggerWork::class.java,
                15, TimeUnit.MINUTES)
                .addTag(worker)
                .build()
   workManager.enqueueUniquePeriodicWork(worker, ExistingPeriodicWorkPolicy.KEEP, callDataRequest)
Run Code Online (Sandbox Code Playgroud)

我的工作人员记录如下

18/09/2018 03:18:19
18/09/2018 03:18:19
18/09/2018 03:18:19
18/09/2018 03:18:19

18/09/2018 03:37:18
18/09/2018 03:37:18
18/09/2018 03:37:18
18/09/2018 03:37:18
Run Code Online (Sandbox Code Playgroud)

这是我的MyLoggerWork类

public class MyLoggerWork: Worker(){


override fun doWork(): Result {
    addlog()
    return Worker.Result.SUCCESS
}

private fun addlog() {

    try {

        val directory = File(Environment.getExternalStorageDirectory().path + "/", "Jobs")
        if (!directory.exists()) {
            directory.mkdir()
        }
        val file = File(directory.path, "jobs_.txt")
        if (!file.exists() && directory.exists()) {
            file.createNewFile()
        }
        try { …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-workmanager

8
推荐指数
1
解决办法
1184
查看次数

清除哈希图的所有值,除了两个键/值对

我有HashMap数百个键/值对。

现在我必须删除除2 个键/值之外的所有键/值。我用过这种方式:

if(map!=null){
     String search = map.get(Constants.search);
     String context = map.get(Constants.context);
     map = new HashMap<>();
     map.put(Constants.search,search);
     map.put(Constants.context,context);
}   
Run Code Online (Sandbox Code Playgroud)

但是 java 8 引入removeIf()了这些条件。我怎样才能用removeIf()方法解决这个问题?

java collections

7
推荐指数
2
解决办法
3740
查看次数

Android 框架布局单击侦听器不起作用

我有一个FrameLayout带有两个嵌套LinearLayouts 的。我想要一个onClickListener()for FrameLayout。经过一番搜索,我得到了一个解决方案clickable="false"

这是我的布局文件:

<FrameLayout
    android:id="@+id/flOuter"
    android:paddingLeft="@dimen/half_margin"
    android:paddingRight="@dimen/half_margin"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:clickable="false"
        android:gravity="center"
        android:id="@+id/flAddIdProof"
        android:background="@drawable/add_background"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:clickable="false"
            android:id="@+id/ivIcon"
            android:src="@drawable/ic_add_black_48dp"
            android:background="@drawable/add_button_border"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        </LinearLayout>

    <LinearLayout
        android:clickable="false"
        android:id="@+id/llLinear"
        android:alpha="0.5"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:enabled="false"
            android:clickable="false"
            android:drawablePadding="@dimen/half_margin"
            android:drawableLeft="@drawable/ic_devices_black_24dp"
            android:hint="Identity Proof"
            android:inputType="none"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <EditText
            android:enabled="false"
            android:clickable="false"
            android:drawableLeft="@drawable/ic_border_color_black_24dp"
            android:hint="Identity Number"
            android:drawablePadding="@dimen/half_margin"
            android:inputType="none"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的点击监听器:

flOuter.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Toast.makeText(DeviceInMeeting.this, "detect", Toast.LENGTH_SHORT).show();
    } …
Run Code Online (Sandbox Code Playgroud)

android android-framelayout

6
推荐指数
2
解决办法
9378
查看次数