https://developer.android.com/about/versions/oreo/background-location-limits
为了降低功耗,Android 8.0(API级别26)限制了后台应用可以检索用户当前位置的频率。应用每小时只能接收几次位置更新。
该文档未提供有关后台位置检索频率限制的任何细节。
假设我的应用程序未在Android O设备上运行并且没有收到任何被动位置更新,我可以可靠地期望它接收到位置更新多少次?
有多少次是“只有几次”到底是什么?
这是自动装箱吗?
Object ob = 8;
Run Code Online (Sandbox Code Playgroud)
上面的代码首先将int literal 8包装在Integer中,然后将其引用分配给变量ob吗?因为java语言规范在这种情况下没有任何内容.
import javax.swing.*;
class Foo{
public static void main(String args[]){
JFrame f=new JFrame();
f.add("North",new JButton()); //Line 1
f.add(new JButton(),"North"); //Line 2
f.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
swing API声明JFrame类包含5个名称add的方法,继承自java.awt.Container,另一个add方法继承自java.awt.Component.
**Their signatures are as follows:**
*Inherited from java.awt.Container*
add(Component)
add(Component,int)
add(Component,Object)
add(Component,Object,int)
add(String,Component)
*Inherited from java.awt.Component*
add(java.awt.PopupMenu)
Run Code Online (Sandbox Code Playgroud)
我期望在API中会有两个带有签名的重载方法add(Component,String)和add(String,Component).但看到情况并非如此,我假设第1行调用add(String,Component),第2行调用add(Component,Object).
此外,任何人都可以给我一个关于如何实现调用方法的解释.我试图通过查看API的来源来解决这个问题,但是方法调用链就像一个迷宫,我可以使用之前曾经去过那里的人的指导.
public class MainMDI extends javax.swing.JFrame {
private static MainMDI thiz;
public MainMDI() {
initComponents();
thiz = this;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在创建一个MDI应用程序.MainMDI类是应用程序的主类,因此main方法驻留在该类中.上面的代码创建了一个名为thiz的静态变量,该变量在应用程序运行时指向MainMDI类的实例.
我打算使用变量thiz从main方法中访问类MainMDI的非静态(实例)成员.(我无法从main方法中访问非静态成员,因为main方法是类中的静态成员我的应用程序中的MainMDI).
public class MainMDI extends javax.swing.JFrame {
private static MainMDI thiz = this;
public MainMDI() {
initComponents();
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试初始化变量thiz时,如上面的代码,编译器说非静态变量,这不能从静态上下文引用.但我不是在静态环境中提到这个,不是吗?这是因为变量this(非静态的)在静态变量初始化时尚未初始化吗?
另外,如果我没有将类MainMDI设置为主类并使用main方法创建另一个类并将该类设置为主类,那么它是一个更好的编程实践吗?