我有一项活动,其中我显示存储在网站上的图像。 我使用以下代码从其URL获取它并显示活动:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate");
setContentView(R.layout.ad_screen);
AsyncTask<String, Void, Integer> task = new AsyncTask<String, Void, Integer>()
{
/** The system calls this to perform work in a worker thread and
* delivers it the parameters given to AsyncTask.execute() */
@Override
protected Integer doInBackground(String... urls)
{
fetchAd();
return 0;
}
/** The system calls this to perform work in the UI thread and delivers
* the result from doInBackground() */
@Override
protected void onPostExecute(Integer result)
{
displayAd();
}
};
task.execute("");
}
这非常好,但行为不是我想要的行为:在这种情况下,活动被推到屏幕上(从右到左动画),然后AsyncTask开始。因此,图像会在延迟后显示在屏幕上(这是正常的)。
但是我想在推送活动之前执行请求,以便屏幕直接显示其图像而没有任何延迟。
有没有办法让这种行为? 提前谢谢。
答案 0 :(得分:2)
您可以在上一个活动中下载图像,创建一个位图,然后在启动此活动的意图中将其作为额外内容传递。
答案 1 :(得分:2)
使用AsyncTask在先前的活动中加载图像,并在当前活动中显示图像。
答案 2 :(得分:0)
您可以在“父”活动中,启动新活动的活动,获取内容,将其存储在内存或某种快速访问持久性中,然后启动活动。
同样的原则可能是引入一个“加载器”活动,它将显示一个加载器,并预取数据,当收到它的所有数据将启动应该显示数据的活动。