小编Ang*_*274的帖子

在Android中运行后台进程

在Android开发中是否有一种方法可以在应用程序的后台运行进程,即使应用程序未处于活动状态.例如,如果用户启动进程,然后点击"主页"按钮,我希望该进程继续在后台运行.

android

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

为什么runOnUiThread()在服务中不起作用?

我正在创建一个应用程序,即使应用程序没有运行,也需要每分钟更新一次值.

当然,我已经设置了一个简单的Service方法.我设置了调试消息,告诉我何时Service启动,何时更新(每分钟)以及何时关闭.我还有一条消息告诉我何时在runOnUiThread()方法内更新值.我的所有消息都被激活,除了那个消息runOnUiThread().有什么我做错了(当然有)?我需要改变什么?

码:

@Override
public void handleMessage(Message message) {

    try {

        if (!serviceStarted) {

            serviceStarted = true;
            serviceTest = true;

            while (serviceStarted) {

                new MainActivity().runOnUiThread(new Runnable() {

                    public void run() {

                            OverviewFragment.refresh(getApplicationContext());
                            System.out.println("yay");

                         }
                });

                Thread.sleep(((1 /* minutes */) * 60 * 1000));
                System.out.println("Updated values through service.");

            }
        }


    } catch (InterruptedException e) {

        Thread.currentThread().interrupt();
        e.printStackTrace();

    }

    stopSelf(message.arg1);
}
Run Code Online (Sandbox Code Playgroud)

android android-service

5
推荐指数
1
解决办法
7611
查看次数

Android 设置自定义首选项分隔线颜色

我正在制作一个使用首选项作为设置菜单的应用程序。我有菜单中不同对象的代码,但分隔线是浅白色的。我想将其设置为较深的颜色(例如黑色),以便更容易看到。我当前的代码如下:

首选项.xml:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:title="Appearance" />

    <ListPreference
        android:key="color_scheme"
        android:title="Color Scheme"
        android:summary="Change the color scheme of the app"
        android:dialogTitle="Color Scheme"
        android:entries="@array/colors"
        android:entryValues="@array/colors"
        android:defaultValue="Default (Blue Gray)" />

    <PreferenceCategory
        android:title="Other" />

    <Preference
        android:key="@string/preference_reset"
        android:title="Reset Values"
        android:summary="Reset all values to their default value" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

样式.xml:

<style name="PreferenceStyle">
    <item name="android:textColorPrimary">@color/text_color_dark</item>
    <item name="android:textColorSecondary">@color/text_color_gray</item>
    <item name="android:listSeparatorTextViewStyle">@style/ListSeperatorColor</item>
</style>

<style name="ListSeperatorColor" parent="android:Widget.TextView">
    <item name="android:background">@color/text_color_dark</item>
</style>
Run Code Online (Sandbox Code Playgroud)

最后:

setTheme(R.style.PreferenceStyle);
Run Code Online (Sandbox Code Playgroud)

android android-preferences

4
推荐指数
1
解决办法
2715
查看次数

Android使用Camera2以编程方式打开/关闭相机闪光灯

我正在制作一个充当手电筒的简单应用程序.我需要能够使用Camera2 API从应用程序中的按钮打开和关闭闪存,因为我使用旧的相机API出错了.我想使用"手电筒"手电筒,相机无需打开即可开启闪光灯.我知道这是可能的,因为很多手机在快速设置菜单中都有闪光灯开/关,但我找不到任何关于如何操作的代码或教程.

码:

Camera cam = Camera.open();     
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();
Run Code Online (Sandbox Code Playgroud)

我在使用Android 6.0.1的Nexus 6P上运行.

编辑:我需要使用Camera2 API.我还没有找到一个很好的教程,在得到答案之后,我将在这里创建一个Q/A格式.

android android-camera android-camera2

3
推荐指数
1
解决办法
2万
查看次数

Android ViewHolder背景颜色

我正在创建一个包含带有嵌套CardView的RecyclerView的Android应用程序.我需要将每张其他卡换成不同的颜色.我@Override用来覆盖这个onBindViewHolder(ViewHolder vh, int pos)方法.我需要更改该方法的背景颜色(我假设),但没有方法来设置ViewHolder的背景颜色!

对不起我的诺言,我正在学习Android开发.

-ben

编辑:代码:

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

    pieRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
    pieRecyclerView.setHasFixedSize(true);
    pies = makePies();

    pieLayoutManager = new LinearLayoutManager(this);
    pieRecyclerView.setLayoutManager(pieLayoutManager);
    PieAdapter adapter = new PieAdapter(pies);
    pieRecyclerView.setAdapter(adapter);
}

public class PieAdapter extends RecyclerView.Adapter<ViewHolder> {

    Context mContext;
    ArrayList<Pie> mPies;
    LayoutInflater mInflater;

    public PieAdapter(ArrayList<Pie> pies) {

        mPies = pies;

    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_layout, parent, false);
        return new ViewHolder(v);

    }

    @Override
    public void …
Run Code Online (Sandbox Code Playgroud)

android

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

Android 获取移动数据信号强度(API &lt;17)

我正在制作一个获取 Wi-Fi 和移动数据信息的应用程序。应用程序的 Wi-Fi 部分工作正常,但我似乎无法让数据部分工作。我在三星手机上听说过这样的问题(我正在测试一个),我需要一个不超过我的 API 级别 15 的解决方法。

这是我当前的代码:

class myPhoneStateListener extends PhoneStateListener {

    @Override
    public void onSignalStrengthsChanged(SignalStrength signalStrength) {

        super.onSignalStrengthsChanged(signalStrength);
        if (signalStrength.isGsm()) {

            mobileStrength = signalStrength.getGsmSignalStrength();
            mobileStrength = (2 * mobileStrength) - 113;

        } else {

            mobileStrength = signalStrength.getCdmaDbm();

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但它返回null

android

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