[英]How to change the main task between two activities?
我很begineer的Android的水平..所以我需要你的人的意见..
我有两个活动
A - > MainActivity
乙 - > LoadingActivity
我的问题是
当我执行我的应用程序,首先,下开始,它需要4秒做数据库的任务。所以我认为这将是更好地使另一个活动只是为了显示加载页面..
所以在MainActivity,我写了这个代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startActivity(new Intent(this, LoadingActivity.class)); <-- this
setContentView(R.layout.activity_main);
我打算是,在LoadingActivity应开始,这MainActivity开始之前,让LoadingActivity显示屏幕为4秒覆盖MainActivity数据库任务的加载图像。
所以,我打算序列,
B(显示在屏幕上的4秒) - > A(开始几乎为B一样,B活性屏幕后面工作) - > B被杀害(调用完成()方法) - >比,使用的应用程序。
请给我任何建议,将不胜感激。
而且,这里是我的LoadingActivity类代码..
public class LoadingActivity extends FragmentActivity{
private static int SPLASH_TIME_OUT = 6000;
private String tag = "LoadingSplash";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.start_up);
String localUrl ="file:///android_asset/loading_gif.gif";
WebView wv=(WebView) findViewById(R.id.startup);
//wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginState(PluginState.ON);
//wv.getSettings().setAllowFileAccess(true);
Log.i(tag, "WebView get Setting finish....");
wv.setPadding(0, 0, 0, 0);
wv.setInitialScale(getScale());
//wv.getSettings().setLoadWithOverviewMode(true);
//wv.getSettings().setUseWideViewPort(true);
wv.loadUrl(localUrl);
new Handler().postDelayed(new Runnable() {
/*
* Showing splash screen with a timer. This will be useful when you
* want to show case your app logo / company
*/
@Override
public void run() {
// This method will be executed once the timer is over
// Start your app main activity
Log.i(tag, "Here is Runnable Method...");
finish();
}
}, SPLASH_TIME_OUT);
@SuppressLint("NewApi")
private int getScale(){
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
Point p = new Point();
display.getSize(p);
int width = p.x;
Double val = new Double(width)/new Double(800);
val = val * 100d;
return val.intValue();
}
}
您可以使用Asynctask进行后台处理。 处理完成后,您可以开始下一个活动。您应该在异步任务上使用进度对话框:)
如果您不了解,那么您可以问我...
关于Asim
您不需要两个单独的活动,您可以执行AsyncTask线程来完成数据库的工作,然后在AsyncTask类的“ onPreExecute”方法中开始显示“所需的自定义视图”(可能包含progressBar),然后在“ doInBackground”中执行操作”方法和AsyncTask类的“ onPost”方法中的方法只是将“所需的自定义视图”的可见性设置为“消失”。 希望这行得通。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.