小编r41*_*41n的帖子

Android手机的锁定屏幕会导致几个后续的onPause/onResume事件

我在Android上进行开发时遇到了这种有点奇怪的行为,在我的谷歌搜索中,我能找到的唯一答案是这是设计的,我不应该关心它.

我的应用程序在活动时获取位置数据,我打算通过在调用onPause事件时停止位置更新来实现保留电池的方法,并在调用onResume事件时稍后恢复提取.

在调试时,我注意到锁定手机时出现这种奇怪的行为,onPause-> onResume被一个接一个地调用三次或更多次,然后以onStop事件结束.我能找到的唯一答案就是:这就是android的工作方式,没关系.

我想我很好奇,有人可以解释我需要多次停止并恢复一个简单的子活动吗?这不会消耗更多的电池,特别是对于在onResume中有严重代码的大型活动吗?有没有办法防止这种情况发生?只要知道至少我在这些事件中的代码没有被调用,我会很高兴,可能使用if {}块来防止不必要的CPU周期.

非常感谢任何见解!

android onresume onpause

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

WPF桌面应用程序,Windows 10通知Toast 2016(UWP社区工具包)

我正在尝试使用我的WPF C#Desktop应用程序显示Windows 10 Toast .

可悲的是,关于非UWP或商店应用程序中的Windows 10通知的API和一般支持似乎非常有限和混乱.最近发布了UWP社区工具包,它似乎试图让我们更容易.还有这个商店应用程序Notifications Visualizer,它可以帮助制作像这样的Toasts:

在此输入图像描述

我继续尝试使用C#和UWP社区工具包提供的API生成Toast.

使用Microsoft.Toolkit.Uwp.Notifications;

ToastContent toastContent = new ToastContent()
{
    Visual = new ToastVisual()
    {
        BindingGeneric = new ToastBindingGeneric()
        {
            Children =
            {
                new AdaptiveText()
                {
                    Text = "Matt sent you a friend request"
                },
                new AdaptiveText()
                {
                    Text = "Hey, wanna dress up as wizards and ride around on our hoverboards together?"
                }
            },
            AppLogoOverride = new ToastGenericAppLogo()
            {
                Source = "https://unsplash.it/64?image=1005",
                HintCrop = ToastGenericAppLogoCrop.Circle
            }
        } …
Run Code Online (Sandbox Code Playgroud)

c# wpf windows-10 windows-10-desktop windows-community-toolkit

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

切换ChoiceMode时,Android ListView选择的问题会发生变化

在尝试清除ListView中项目的选择(选择)时,我面临一种奇怪的行为.代码工作得很好,其功能允许(一次在CHOICE_MODE_MULTIPLE中)通过点击选择单个项目,选择全部,选择无并反转当前选择.由于ListView应该在两种模式下工作(_NONE和_MULTIPLE),我有这个菜单项可以在这些模式之间切换,允许用户"打开"一个项目或一次选择几个项目进行批量操作.

我所面临的问题仅在将选择模式从CHOICE_MODE_MULTIPLE更改回CHOICE_MODE_NONE时显示.我要做的是不仅要恢复到CHOICE_MODE_NONE,还要清除任何选择.奇怪的是,虽然所有函数都可靠地工作,但是当我在更改回CHOICE_MODE_NONE之前调用"select non"函数时,无论我在何处或何时调用代码中的"select none"函数,所有项都会保持检查状态.

处理选择更改的函数如下:

private void changeItemSelection(int selection) {
    NotesAdapter adapter = (NotesAdapter)listView.getAdapter();

    if (selection == SELECT_ALL) {
        for(int iCount = 0; iCount < adapter.getCount(); iCount++) {
            listView.setItemChecked(iCount, true);
        }
    }
    else if (selection == SELECT_NONE) {
        for(int iCount = 0; iCount < adapter.getCount(); iCount++) {
            listView.setItemChecked(iCount, false);
        }
    }
    else if (selection == SELECT_INVERT) {
        for(int iCount = 0; iCount < adapter.getCount(); iCount++) {
            listView.setItemChecked(iCount, !listView.isItemChecked(iCount));
        }       
    }
    adapter.notifyDataSetChanged();
    checkedItemCountInvalid = true; // Invalidate checked indices cache
} …
Run Code Online (Sandbox Code Playgroud)

android listview selection

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