我在我的活动中使用了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的静态全局类中?
谢谢
在我的活动中,我想展示简单的信息对话框,例如:
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.我不想创建父活动的成员变量,只存储当前消息应该是什么.你们都是这样做的?
谢谢
我正在开发iPhone,objective-c.当我们使用自动释放时,对象实际上何时被释放 - 当主自动释放池被释放时(即应用程序终止?),或者本地函数何时结束?例如,我想做这样的事情:
- (void) test
{
MyObj* p = [[[MyObj alloc] init] autorelease];
...
// is p 'released' here?
}
一旦函数退出,或者当该线程的自动释放池被释放时,'p'就会被释放吗?我认为这是当本地函数退出时,但我只是创建了自己的线程,并需要设置一个自动释放池,这让我第二次想到这实际发生的时间..
谢谢
我试图了解res/drawables图像应该如何使用不同的屏幕密度.现在我有一个1.5应用程序,例如,我有一个100x100像素的图像.当在Droid上使用时,它会缩放此图像,使其在该设备上看起来相对大小相同(所有其他布局缩放由我处理,使用dip单位).
所以现在我需要更新我的项目并添加三个文件夹,对吧?:
所以我要将我的100x100图像放在-mdpi文件夹中.如果我想为-hdpi文件夹制作一个版本 - 我怎么知道要扩大它的大小呢?我的意思是它看起来默认它应该大1.5倍.但是如果我把它做大2.0倍,或者我正在运行的设备的密度不是基线G1的1.5倍,会发生什么?我的布局不会在这些设备上开始看起来不同吗?
谢谢
我想发短信.如果文本太长,我将其拆分为多条消息.我正在尝试将一些额外的信息添加到"已发送"的意图中以了解哪个部分已被发送,以及所有部分何时完成:
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.似乎同样的意图只是不断被扔到我的广播接收器.这样做的正确方法是什么?
谢谢
我正在使用SharedPreferences来存储一些应用程序设置.如果我将新版本推向市场并且我的用户下载,那么升级后是否会删除所有这些SharedPreferences?我知道我的sqlite数据库将保持不变,想知道SharedPreferences是否也是如此.
谢谢