android短彩信附件机制,Android短彩信附件机制

Android短彩信附件机制,将一些认识写下来,和大家交流一下,同时也方便自己复习。

用户可以通过附件按钮,添加附件。以添加幻灯片为例:

如果点击幻灯片,会走如下代码:

ComposeMessageActivity.java

private void editSlideshow() {

// The user wants to edit the slideshow. That requires us to persist the slideshow to

// disk as a PDU in saveAsMms. This code below does that persisting in a background

// task. If the task takes longer than a half second, a progress dialog is displayed.

// Once the PDU persisting is done, another runnable on the UI thread get executed to start

// the SlideshowEditActivity.

getAsyncDialog().runAsync(new Runnable() {

@Override

public void run() {

// This runnable gets run in a background thread.

mTempMmsUri = mWorkingMessage.saveAsMms(false);

}

}, new Runnable() {

@Override

public void run() {

// Once the above background thread is complete, this runnable is run

// on the UI thread.

if (mTempMmsUri == null) {

return;

}

Intent intent = new Intent(ComposeMessageActivity.this,

SlideshowEditActivity.class);

intent.setData(mTempMmsUri);

startActivityForResult(intent, REQUEST_CODE_CREATE_SLIDESHOW);

}

}, R.string.building_slideshow_title);

}

这段代码比较简单,总的来说就是先构建一个Uri,用于表示附件的唯一Id,然后这个Uri被传到附件幻灯片编辑页面,也就是SlideshowEditActivity.java。重点就是在构建Uri的过程中,做了什么事情。(关于getAsyncDialog(),并不影响我们分析,读者可跳过。其实这段代码是异步执行的,也就是说代码在主线程中调用了一下,主线程就返回了,也就是常说的不阻塞主线程。这段代码归根结底是调用了AsycnTask,只不过Mms应用封装了它并对外提供了异步线程接口。如果第一个Runnable在0.5秒之后没有执行完毕,那么会弹出一个progressBar,提示信息就是第三个参数,如果执行完毕,就执行第二个Runnable)。0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值