小编ste*_*osf的帖子

Android:取消异步任务

我使用异步任务上传图像并获得一些结果.

在上传图像时,我看到一个进度对话框,用onPreExecute()方法编写,如下所示:

    protected void onPreExecute() { 
         uploadingDialog = new ProgressDialog(MyActivity.this); 
         uploadingDialog.setMessage("uploading"); 
         uploadingDialog.setCancelable(true);
         uploadingDialog.show();
    }
Run Code Online (Sandbox Code Playgroud)

好的,当我按下后退按钮时,显然对话框因setCancelable(true)而消失.

但(显然)异步任务不会停止.

那么我该如何解决这个问题呢?当我按下后退按钮时,我想取消对话和异步任务.有任何想法吗?

编辑:找到解决方案.请看下面我的答案.

android asynchronous task back

57
推荐指数
5
解决办法
10万
查看次数

更新应用程序时的Android内部存储

我使用内部存储(http://developer.android.com/guide/topics/data/data-storage.html#filesInternal)来存储用户创建的一些必要的应用程序文件.

我想这些文件永远存储好了吗?只有在用户卸载应用程序时才会删除它们,我是否正确?

如果通过Android Market更新应用程序(例如从版本1.0到1.1),那么从先前版本存储的文件会发生什么?他们被删除了吗?

先感谢您.

storage android internal

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

Android Studio禁用灯泡

我想在Android Studio中禁用灯泡(lint checking/intentions):

在此输入图像描述

一些澄清:

  1. 我想要禁用这个灯泡的主要原因是因为我发现自己有几次复制和粘贴字符串,但是灯泡挡住了路并被意外点击.

  2. 如果按Alt + Enter,我可以看到灯泡显示的相同建议.因此,为什么我需要灯泡一直出现,因为我可以通过按Alt + Enter手动启用它?

  3. 我已经在Android Studio中禁用了所有意图:文件>设置>编辑器>意图

  4. 我已经在其他用户建议的%HOMEPATH%.\ config\options\editor.xml中添加了以下行:<option name ="SHOW_INTENTION_BULB"value ="false"/>.这确实减少了灯泡出现的时间,但是当我的代码中出现警告时它仍会出现.我不想禁用警告,我只是想让灯泡消失,因为我总是可以按Alt + Enter查看警告中的可用建议.

谢谢!

intellij-idea android-studio

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

FCM通知和collapse_key

我通过Firebase Notification控制台向用户Android设备发送通知,我注意到即使我在用户设备离线时发送10个不同的通知,一旦用户上线,她/他将收到所有10个.

但是,在Firebase文档中,声明:

FCM允许应用服务器在任何给定时间使用每个设备最多四个不同的折叠键.换句话说,FCM连接服务器可以同时为每个设备存储四个不同的可折叠发送到同步消息,每个消息具有不同的折叠密钥.如果超过此数字,FCM仅保留四个折叠键,不保证保留哪些键.

那么用户不应该只收到4个通知吗?我错过了什么吗?(我没有扩展FirebaseMessagingService,我将通知处理留给SDK)

更新:如果您未在Firebase通知控制台中指定折叠键,则似乎会为通知分配隐式折叠键,即应用程序的包名称.getIntent().getExtras()一旦我通过点击通知启动应用程序,我已经通过检查密钥集的所有键/值对来测试了这一点.事实上,collapse_key即使我没有指定一个密钥,我也会得到一个包名称值的密钥.

更新2:我尝试通过扩展来处理通知FirebaseMessagingService,以便在应用程序位于前台时从通知控制台接收消息.我收到通知消息,并手动向用户显示通知.你猜怎么着.折叠键很棒!即使我使用相同的折叠键发送多个通知,我也会收到一条通知.只有当应用程序在前台,因为火力地堡SDK不会调用这种情况显然onMessageReceived()当应用程序在后台,而是它处理通知本身.这是否意味着这是Firebase SDK的错误?(因为问题仅在SDK显示通知时发生)

所以问题仍然存在,为什么我收到所有10个通知,因为每个通知都有相同的折叠键?也许FCM错误?

firebase firebase-cloud-messaging firebase-notifications

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

三星我的文件浏览器:选择文件意图

我想启动一个可以返回任何类型文件的intentchooser.以下代码适用于常用的文件浏览器(ES,Astro等),但不适用于内置的三星My Files资源管理器.

Intent selectFile = new Intent(Intent.ACTION_GET_CONTENT);
selectFile.setType("file/*");
startActivityForResult(Intent.createChooser(selectFile, "Select File"), SELECT_FILE);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何处理三星探险家?我试图使用Intent selectFile = new Intent("com.sec.android.app.myfiles.PICK_DATA")但它似乎不起作用.

有任何想法吗?谢谢.

更新:我使用了这段代码

Intent selectFile = new Intent();
selectFile.setAction("com.sec.android.app.myfiles.PICK_DATA");
startActivityForResult(selectFile, SELECT_FILE);
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:FORWARD_RESULT_FLAG在请求结果时使用.谁知道这是什么意思?

explorer android file android-intent

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

如何在Cloud Functions的Cloud Functions中访问多个实时数据库实例

我在Firebase项目中使用多个数据库.主(默认)数据库的云功能很好,但是,我不能使它们适用于辅助数据库.例如,我想在具有管理员权限的节点上发出读取请求:

//this works
admin.database().ref(nodePath).once('value')...
Run Code Online (Sandbox Code Playgroud)

这适用于主数据库,但是,如果我想在另一个数据库上执行该命令,它不起作用:

//this doesn't work
admin.database(secondaryDatabaseUrl).ref(nodePath).once('value')...
Run Code Online (Sandbox Code Playgroud)

虽然部署了这些功能,但在尝试执行云功能时,我在控制台上收到错误.

以下是带有https触发器的云功能代码:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const secureCompare = require('secure-compare');

exports.testFunction= functions.https.onRequest((req, res) => {
  const key = req.query.key;
  // Exit if the keys don't match
  if (!secureCompare(key, functions.config().cron.key)) {
    console.error('keys do not match');
    res.status(403).send('error1');
    return;
  }
  //test read request
  //the line below crashes the function
  return admin.database('https://secondary_db_url.firebaseio.com').ref(`/testNode`).once('value').then(dataSnapshot=> {
    console.log('value', dataSnapshot.val());
    return;
  }).catch(er => {
    console.error('error', er);
    res.status(403).send('error2');
  });
});
Run Code Online (Sandbox Code Playgroud)

以下是Firebase控制台中的错误日志:

TypeError: ns.ensureApp(...).database is not a …
Run Code Online (Sandbox Code Playgroud)

javascript firebase firebase-realtime-database google-cloud-functions firebase-admin

6
推荐指数
4
解决办法
4080
查看次数

Firebase Analytics:在控制台中注册自定义参数

我无法理解在 Firebase Analytics 控制台中注册自定义事件的自定义参数有什么好处。

  1. 是用于分析数据还是用于记录数据?

  2. 如果我不注册自定义参数,事件还会被成功记录吗?

  3. 如果我想在 BigQuery 中分析数据,我是否必须首先在 Firebase 控制台中注册这些参数?

  4. 如果我在我的应用中使用的自定义参数比 Firebase 的“全局参数报告配额”多,那么这些事件还会被记录吗?或者我可能会“丢失”这些事件的数据?

我已经彻底阅读了文档,但不清楚如何处理自定义参数。

firebase firebase-analytics

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

将字符串转换为人类可读日期(java/android)

基于具有以下格式的输入字符串:"yyyyMMdd"例如"20170412",如何显示日期和日期?

例如:

input -> "20170412"
Run Code Online (Sandbox Code Playgroud)

output -> "Wednesday, April 12th 2017""Wed Apr 12 2017"类似的东西

无论我尝试使用哪种模式SimpleDateFormat(/sf/answers/295173721/),我总能得到我不需要的时间和时区.

那可能吗?

编辑:我的问题重复.我在帖子中明确提到,所有模式SimpleDateFormat都列在可能的重复问题中,显示用户的时间和时区.我需要一个用户区域设置日期的模式,没有时间或时区.

java android date

2
推荐指数
2
解决办法
2130
查看次数