在本文档"与其他片段进行通信"中,Google告诉我们,传递Activity和Fragment的最佳实践是实现一个接口.然后,此接口可以由Fragment调用并在Activity中执行必要的行为.
但也有一种黑客方式来做到这一点.通过方法"getActivity()"直接获取Activity ,然后我们可以使用它下面的所有"公共方法".
这让我很困惑.因为我无法想到使用黑客方式做任何这一点的任何关键缺点.
我头脑中出现的第一种方法的优点是:
好吧,在我总结出这些之后,我对自己有点说服了.但坦率地说,我真的想要一些其他坚实的,并且必须有理由这样做.任何想法或文件将非常感谢!!
当我的apk生成时,我执行命令aapt dump badging就可以了.我一直收到以下错误:
application:label ='Name'icon ='res/drawable/icon_128x128.png'application
-debuggable launchable -activity:name ='co.package.name.MainActivity'label ='Name'icon =''ERROR getting'android: name'属性:attribute不是字符串值
我试图为所有活动添加标签名称,并删除/ res下的所有其他值-xx文件夹但是徒劳无功.但是,如果我创建一个全新的项目并生成一个新的APK,则可以使用该aapt dump badging命令成功执行APK .
我比较了两个APK的打印消息,发现了一个主要区别:
成功消息apk:
application-label:'AppLabel'application
-icon-160:'res/drawable-xhdpi/icon_128x128.png'application
-icon-240:'res/drawable-xhdpi/icon_128x128.png'application
-icon-320:'res/drawable-xhdpi/icon_128x128.png'application
:label ='AppLabel'icon ='res/drawable-xhdpi/icon_128x128.png'application
-debuggable launchable
-activity:name ='com.demo.testApp.MainActivity'label =''图标="
失败消息apk:
application-label:'MyApp'application
-label-ja:'MyApp'application
-label-de:'MyApp'application
-label-he:'MyApp'application
-label-zh:'MyApp'application
-label-fi:' MyApp的"
应用程序标签-NL: 'MyApp的'
..
..(所有语言将被附连,最后发生错误)
..
应用:标签= 'MyApp的'图标= 'RES /抽拉/ icon_128x128.png'
应用程序- debuggable
launchable-activity:name ='com.name.myapp.MainActivity'label ='MyApp'icon =''
ERROR getting'android :name'属性:attribute不是字符串值
-----编辑------
我发现与"语言"问题无关.我修改了我的Manifest文件并确保没有打印出这样的"application-label-XX",错误仍然是一样的.
下面是我的清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="co.package.name"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" /> …Run Code Online (Sandbox Code Playgroud) 我认为我对 Javascript 的理解从根本上是错误的。
在文件 abc.js 中,我有代码
export function returnBoolean() {
return true;
}
export function output() {
return returnBoolean();
}
Run Code Online (Sandbox Code Playgroud)
在测试中,我做
import * as abc from "../abc";
it("test", () => {
abc.returnBoolean = jest.fn();
abc.returnBoolean.mockReturnValue(false);
expect(abc.returnBoolean()).toBe(false); // This is success
expect(abc.output()).toBe(false); // This failed because return is true
});
Run Code Online (Sandbox Code Playgroud)
我不知道为什么
abc.output()return 是true。
我真的很困惑。任何想法都非常感谢。谢谢!