小编Geo*_*cks的帖子

Android 从 Android 设置导航回应用程序

由于 android 从 Android 设置导航回来的方式,我的用户体验不一致。

在我的应用程序中,用户需要授予我的应用程序访问权限ACTION_USAGE_ACCESS_SETTINGS,我通过以下方式访问:

Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在为我的应用程序将设置切换为打开后,我需要用户返回到我的应用程序。据我所知,这样做的唯一方法是让他们按下手机上的后退按钮(很想知道是否可以在切换设置后自动返回!!!?!)。

现在将发生两件事之一:

1) 用户最近没有使用android设置,所以它没有打开(即在打开的应用程序抽屉中打开)。第一次按下后退按钮将根据需要将它们带到我的应用程序。

2) 用户最近使用过安卓设置。因此设置已经在应用程序抽屉中打开。现在,当用户按下返回键时,Android 会将他们带回他们最近使用过的每个设置页面(即后退按钮带他们查看他们在 android 设置页面中的历史记录)。可能需要按 2、3 或 4 次后退按钮才能离开 Android 设置并返回到我的应用程序。这显然是糟糕的 UI/UX,我想知道是否有更好的方法?

我注意到在安装 Google 应用程序时,将设置切换为 ON 后,它会自动退出并返回到调用该设置的应用程序。能够做到这一点是理想的,但我无法解决。

谢谢!

android android-navigation android-settings

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

ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 什么都不做

我的意思不是什么都没有发生。弹出对话框:

“让应用始终在后台运行?允许/拒绝

但是,如果我进入设置、应用、电池优化,我的应用仍设置为“优化电池使用”。然后我可以手动将其切换为“不优化”,但根据此处的文档和所有其他问题,使用 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 意图并单击“允许”应该会更改此设置。

我正在使用:

此外,这个应用程序是用于研究的,不会在商店上架,所以我不担心 Play 商店的政策。

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        Intent intent = new Intent();
        String packageName = getPackageName();
        PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
        if (!pm.isIgnoringBatteryOptimizations(packageName)) {
            intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
            intent.setData(Uri.parse("package:" + packageName));
            startActivity(intent);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在使用上面的代码。它启动,弹出一个对话框“让应用程序始终在后台运行?” 我按允许。

我的问题是按下“允许”实际上是做什么的,因为如果您随后进入应用程序设置并查看电池优化,设置会显示该应用程序仍在“优化电池使用”。

所以看起来上面的意图,按下允许,实际上并没有做任何事情。

android android-doze

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

Rails显示表数据

我开发了三个类的rails应用程序.

class Location < ActiveRecord::Base
    has_many :observations

end

class Observation < ActiveRecord::Base
  belongs_to :location
  has_one :rainfall
  has_one :temperature
  has_one :winddirection
  has_one :windspeed
  has_one :dewpoint

end


class Rainfall < ActiveRecord::Base
  belongs_to :observation

end
Run Code Online (Sandbox Code Playgroud)

Railfall通过observation_id与Observation相关,而Observation通过location_id与Location相关.

如果我去控制台并键入类似:Location.all.first.observations.first.rainfall.value的内容,它会返回降雨量值列中的数据

但是,当我想在表格和我的视图/ location/index.html.erb中组合rails中的所有信息时,我将:

<tbody>
    <% @locations.each do |location| %>
      <tr>

        <td><%= location.name %></td>



        <% unless @observations = nil %>

        <% location.observations.each do |obs| %>
        <td><%= obs.name %></td>

        <% unless @rainfalls = nil %>
        <td><%= obs.rainfalls.value %></td>


    <% end %>
    <% end %>
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

    undefined method `rainfalls' for …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails view

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