小编adi*_*adi的帖子

Android WorkManager 未启动工作线程

我想在应用程序启动时从服务器下载某些文件。所以我尝试使用工作管理器,它从我的自定义应用程序类中排队。但是 Worker 类没有被触发,状态只是入队,不会进入运行状态.下面是我的代码:

应用类:

@Override
public void onCreate() {
    Constraints constraints = new Constraints.Builder()
            .setRequiredNetworkType(NetworkType.CONNECTED)
            //.setRequiresStorageNotLow(true)
            //.setRequiresBatteryNotLow(true)
            .build();

    OneTimeWorkRequest request = new OneTimeWorkRequest
            .Builder(MyWorker.class)
            //.setConstraints(constraints)
            //.setInitialDelay(1,TimeUnit.SECONDS)
            .addTag("download")
            .build();

    WorkManager.getInstance(getApplicationContext()).getWorkInfoByIdLiveData(request.getId()).observeForever(new Observer<WorkInfo>() {
        @Override
        public void onChanged(WorkInfo workInfo) {
            if (workInfo == null) {
                Log.d("download", "workInfo == null");
            } else {
                Log.d("download", "workInfo != null: " + workInfo.getState().toString());//This is giving ENQUEUED once..thats it
            }
        }
    });
    WorkManager.getInstance(getApplicationContext()).enqueue(request);
}
Run Code Online (Sandbox Code Playgroud)

我的工人类

public class MyWorker extends Worker {

public MyWorker(@NonNull Context context, @NonNull …
Run Code Online (Sandbox Code Playgroud)

android workmanagers android-workmanager androidx

9
推荐指数
0
解决办法
5755
查看次数

android 芯片占用额外空间;无法包装

我使用带有动态芯片的芯片组。我希望芯片根据它们的文字被包裹在宽度上。但即使没有填充,它也需要额外的空间。

下面是我的代码:

xml:

<com.google.android.material.chip.ChipGroup
    android:id="@+id/cg"
    android:layout_width="0dp"
    android:layout_weight="75"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:layout_marginBottom="5dp"
    android:textColor="@android:color/black"
    android:textStyle="bold"
    android:textSize="12sp"
    app:singleSelection="false"
    app:chipSpacingVertical="5dp"
    app:chipSpacingHorizontal="5dp"
    app:singleLine="false"
    app:chipSpacing="2dp">
Run Code Online (Sandbox Code Playgroud)

这是如何动态添加筹码:

for(int i=0;i<cartoonTypes.length;i++){
    chip = new Chip(this);
    chip.setText(cartoonTypes[i].trim());
    chip.setTextColor(Color.WHITE);
    chip.setChipBackgroundColor(getResources().getColorStateList(R.color.colorChip));
    chip.setTextSize(12);
    chip.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
    chip.setPadding(0,0,0,0);
    cgMovieGenre.addView(chip);
    ChipGroup.LayoutParams layoutParams = (ChipGroup.LayoutParams) chip.getLayoutParams();;
    int dpSize = px2dp(12);;
    layoutParams.height = dpSize;
    layoutParams.width = ChipGroup.LayoutParams.WRAP_CONTENT;
    chip.setLayoutParams(layoutParams);
}
Run Code Online (Sandbox Code Playgroud)

方法 px2dp 这样做:

int px2dp(int px){
    metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int h = (px * metrics.densityDpi) / DisplayMetrics.DENSITY_DEFAULT;
    return h;
}
Run Code Online (Sandbox Code Playgroud)

build.gradle有以下依赖项:

implementation fileTree(dir: 'libs', include: …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-chips material-components material-components-android

4
推荐指数
2
解决办法
4731
查看次数

android:background not reflected in view with layout weight

我有一个简单LinearLayoutImageView布局视图,法线视图的权重分别为0.55和0.45。

除非我给weightsum我的礼物,我不能分手LinearLayout

有我的后LinearLayout裂开,我试图给一个背景色,以我的看法,但它不是反映。

下面是我的代码:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1"
    >
    <ImageView
        android:layout_weight=".55"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="5dip"
        android:scaleType="fitXY"
        android:src="@drawable/ic_launcher_background"
        android:contentDescription="TODO" />

    <View
        android:layout_weight=".45dp"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:visibility="visible"
        android:background="@color/colorPrimary"
        ></View>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我不知道应该进行哪些更改,以便可以正确拆分视图并设置背景颜色。提前致谢!

android android-linearlayout android-background android-layout-weight

0
推荐指数
1
解决办法
40
查看次数