我试图实现新的Notification Service Extension,但我遇到了问题.
在我的NotificationService.swift文件中,我有这样的代码:
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)?
var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
self.contentHandler = contentHandler
bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
if let bestAttemptContent = bestAttemptContent {
// Modify the notification content here...
bestAttemptContent.title = "\(bestAttemptContent.title) [modified]"
print(bestAttemptContent.body)
contentHandler(bestAttemptContent)
}
}
override func serviceExtensionTimeWillExpire() {
// Called just before the extension will be terminated by the system.
// Use this as an opportunity to deliver …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我从本地数据库加载数据,速度很慢。我试图找出什么是缓慢的,我发现这是因为 LiveData。
我创建了一个示例应用程序来测试 LiveData 速度,这里是我的测试代码:FirstFragment:
class FirstFragment : Fragment(), FirstFragmentCallback {
private val TAG = FirstFragment::class.java.simpleName
private var mViewModel: FirstFragmentViewModel? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mViewModel = ActivityUtils.obtainViewModel(requireActivity(), FirstFragmentViewModel::class.java)
(mViewModel as FirstFragmentViewModel).callback = this
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val v = inflater.inflate(R.layout.first_fragment, container, false)
Log.d(TAG, "onCreateView called")
registerObservables()
mViewModel?.loadData()
return v
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val secondFragmentButton = view.findViewById<Button>(R.id.second)
secondFragmentButton.setOnClickListener {
ActivityUtils.replaceFragmentInActivity(requireFragmentManager(), SecondFragment(), R.id.container, …Run Code Online (Sandbox Code Playgroud) 我用故事板创建了一个简单的Cocoa触摸框架.在我的框架中,我有一个MainViewController.swift视图控制器.我创建了一个新的单一视图项目,导入我的框架并尝试加载我的框架viewcontroller,但我得到了黑屏.我不知道为什么.
我尝试使用以下代码加载框架:
let frameworkScreen : UIViewController = MainViewController()
self.presentViewController(frameworkScreen, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud) 我尝试使用LinkedIn sdk登录,但它没有用.我有一个按钮,我写入onClick方法:
if (view.getId() == btnLinkedinLogin.getId()){
LISessionManager.getInstance(getActivity()).init(getActivity(), Scope.build(Scope.R_FULLPROFILE), new AuthListener() {
@Override
public void onAuthSuccess() {
Log.d(TAG, "succesful linkedin login");
((MainActivity)getActivity()).showFragment("Tile");
}
@Override
public void onAuthError(LIAuthError error) {
Log.d(TAG, "failed linkedin login. Error: " + error.toString());
}
}, false);
}
Run Code Online (Sandbox Code Playgroud)
我重写onActivityResult方法,如下所示:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
LISessionManager.getInstance(getActivity().getApplicationContext()).onActivityResult(getActivity(), requestCode, resultCode, data);
// super.onActivityResult(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行我的应用程序并单击登录按钮,则会显示linkedin徽标,但在隐藏后,我的应用程序不会调用AuthListener方法...
我已经创建了我的linkedin应用程序并设置了包名称和哈希值.
我在日志中看到:请求是https://www.linkedin.com/uas/mobilesdk/authorize scope = r_fullprofile&duid = 5770a1bf-2567-4fd1-9358-b762856df6d3&packageName = com.beee&packageHash = 8dRCxNsk3LZTTd11iJmoiYaCpIA%3D&csrfToken = ajax%3A1829388572167379991&userAuthorized =假
更新:我检查了我的linkedin配置文件,我在我的个人资料中看到了我的linkedin应用程序.如果我删除它,并尝试再次登录,现在我看到linkedin应用程序需要预先设置的屏幕,但在它没有调用任何方法之后...
我下载了新的android 5.0 sdk和sys-image,但是如果我想用android 5.0启动一个模拟器它不能启动只是让我看一个黑屏,问题是什么?
我想检查字典是否包含键,但我不知道如何。我试过这个:
if [ -z "${codeDict["$STR_ARRAY[2]"]+xxx}" ]
then
echo "codeDict not contains ${STR_ARRAY[2]}"
codeDict["${STR_ARRAY[2]}"]="${STR_ARRAY[3]}"
fi
Run Code Online (Sandbox Code Playgroud) 我有这个小方法:
private fun showWebsiteWithUrl(url: String) {
val i = Intent(Intent.ACTION_VIEW)
i.data = Uri.parse(url)
startActivity(i)
}
Run Code Online (Sandbox Code Playgroud)
我在 google play 中看到有时这种方法会抛出android.content.ActivityNotFoundException异常。
该url参数是一个有效的 url,如下所示:http : //www.stackoverflow.com/
这是堆栈跟踪的开始:
由 android.content.ActivityNotFoundException 引起:No Activity found to handle Intent { act=android.intent.action.VIEW dat= http://www.stackoverflow.com/ ... }
我无法在我的手机上重现该问题,用户在华为 Y5 (DRA-L21) Android 8 上遇到此错误,有时在使用 android 9 的小米设备上也会遇到此错误。
我尝试按照官方升级文档进行操作,但是在更改 gradle 文件中的所有相关行后,出现此错误:
评估项目“:app”时出现问题。无法应用插件 [id 'com.google.firebase.crashlytics'] 无法为 com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension 类型的对象设置未知属性 'obfuscatorVersion'。
这些是 Firebase 版本:
firebaseCrashlytics = '17.0.1'
firebaseAnalytics = '17.4.3'
其他相关依赖:
类路径 'com.android.tools.build:gradle:3.6.3'
类路径 'com.google.gms:google-services:4.3.3'
类路径 'com.google.firebase:firebase-crashlytics-gradle:2.1.1'
如果我注释掉这一行:
应用插件:'com.google.firebase.crashlytics'
一切正常……我无法升级到 gradle 4.0.0,因为 DexGuard 不支持它。
我有一个问题,我不知道如何将文本视图添加到网格布局。我有一个 xml:
<TextView
android:id="@+id/textView1"
android:layout_column="2"
android:layout_columnSpan="3"
android:layout_gravity="center_horizontal|top"
android:layout_row="3"
android:layout_rowSpan="2"
android:text="TextView" />
Run Code Online (Sandbox Code Playgroud)
并想动态地做这个xml代码。我怎样才能做到这一点?我知道如何创建 textview,但我不知道如何添加到 gridlayout...
android ×6
ios ×2
swift ×2
bash ×1
cocoa-touch ×1
crashlytics ×1
dictionary ×1
firebase ×1
ios10 ×1
iphone ×1
java ×1
kotlin ×1
linkedin ×1