小编Mar*_*ark的帖子

如何处理onPause()中的AsyncTask?

我在我的活动中使用了AsyncTask.好像:

public class MyActivity {
    private AsyncTask mTask;

    private void doSomethingCool() {
        mTask = new AsyncTask(...);
        mTask.execute();
    }

    @Override
    protected void onPause() { 
        super.onPause();

        // How do I let the task keep running if just rotating?
        if (isFinishing() == false) {
            ... 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果用户正在旋转设备,onPause()将被调用,但我不想因此而取消任务.我知道有一种方法可以告诉系统实际上不会破坏我的旋转活动,但这是推荐用于此问题吗?我是否应该将AsyncTask放在一个不会绑定到Activity的静态全局类中?

谢谢

android

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

显示简单的消息对话框

在我的活动中,我想展示简单的信息对话框,例如:

new AlertDialog.Builder(context).setMessage(message).show();
Run Code Online (Sandbox Code Playgroud)

如果我这样做,当我旋转手机时对话框会泄漏(更不用说它也会消失,因此用户可能会错过它).我可以使用托管对话框,但我不确定如何合理地使用它来处理这些类型的短消息?看起来你必须这样做:

showDialog(SOME_DLG_ID);
...
@Override
onCreateDialog(int id) {
    if (id == SOME_DLG_ID) {
        new AlertDialog.Builder(context).setMessage(message).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

因为它是一个覆盖方法,所以无法将消息传递给onCreateDialog.我不想创建父活动的成员变量,只存储当前消息应该是什么.你们都是这样做的?

谢谢

android

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

什么时候发布'autorelease'的对象?

我正在开发iPhone,objective-c.当我们使用自动释放时,对象实际上何时被释放 - 当主自动释放池被释放时(即应用程序终止?),或者本地函数何时结束?例如,我想做这样的事情:

- (void) test
{
    MyObj* p = [[[MyObj alloc] init] autorelease];
    ...

    // is p 'released' here?
}

一旦函数退出,或者当该线程的自动释放池被释放时,'p'就会被释放吗?我认为这是当本地函数退出时,但我只是创建了自己的线程,并需要设置一个自动释放池,这让我第二次想到这实际发生的时间..

谢谢

objective-c

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

无法理解如何使用1.6+的不同密度图像?

我试图了解res/drawables图像应该如何使用不同的屏幕密度.现在我有一个1.5应用程序,例如,我有一个100x100像素的图像.当在Droid上使用时,它会缩放此图像,使其在该设备上看起来相对大小相同(所有其他布局缩放由我处理,使用dip单位).

所以现在我需要更新我的项目并添加三个文件夹,对吧?:

  1. 绘制,LDPI
  2. 绘制,MDPI
  3. 绘制,华电国际

所以我要将我的100x100图像放在-mdpi文件夹中.如果我想为-hdpi文件夹制作一个版本 - 我怎么知道要扩大它的大小呢?我的意思是它看起来默认它应该大1.5倍.但是如果我把它做大2.0倍,或者我正在运行的设备的密度不是基线G1的1.5倍,会发生什么?我的布局不会在这些设备上开始看起来不同吗?

谢谢

android android-drawable pixel-density screen-density

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

将数据放入SMS发送意图?

我想发短信.如果文本太长,我将其拆分为多条消息.我正在尝试将一些额外的信息添加到"已发送"的意图中以了解哪个部分已被发送,以及所有部分何时完成:

ArrayList<String> messageParts = ...;
for (int i = 0; i < messageParts.size(); i++) {
    sms.sendTextMessage(
      address, 
      null, 
      messageParts.get(i), 
      generateIntent(context, messageParts.size(), i), 
      null));
}

PendingIntent generateIntent(Context context, int partCount, int partIndex)
{
    Intent intent = new Intent("SMS_SENT");
    intent.putExtra("partCount", partCount);
    intent.putExtra("partIndex", partIndex);
    return PendingIntent.getBroadcast(context, 0, intent, 0);
}
Run Code Online (Sandbox Code Playgroud)

发送消息,并在发送每个部分时捕获意图 - 但意图始终具有相同的数据.例如,"partIndex"始终为零,即使对于第二条消息,它也应为1.似乎同样的意图只是不断被扔到我的广播接收器.这样做的正确方法是什么?

谢谢

android

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

应用升级之间SharedPreferences保持不变?

我正在使用SharedPreferences来存储一些应用程序设置.如果我将新版本推向市场并且我的用户下载,那么升级后是否会删除所有这些SharedPreferences?我知道我的sqlite数据库将保持不变,想知道SharedPreferences是否也是如此.

谢谢

android

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