你好,我正在尝试实现一个登录屏幕,显示一个进度对话框,并允许手机旋转。
我想问一下,最好的方法是什么(IntentService,AsyncTask,服务),并允许手机旋转?
我读了很多答案,说了不同的东西,使用了一个空片段,还有AsyncTask等等。
发布于 2016-10-21 01:37:15
您可以在manifest中执行类似的操作以允许循环:
<application
android:allowBackup="true"
android:configChanges="orientation|keyboardHidden|screenSize"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".activities.MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"/>然后,您可以在您的活动中使用以下代码片段来捕捉旋转:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.v(this.getClass().getName(), "onConfigurationChanged()");
}要在进度对话框中执行异步任务,下面的代码片段应该会给出一个ligth:
private ProgressDialog pDialog;
private class MyAsync extends AsyncTask<String, Void, String> {
Activity context;
public MyAsync (Activity context) {
this.context = context;
}
@Override
protected void onPreExecute(){
super.onPreExecute();
pdia = new ProgressDialog(context);
pdia.setMessage("Loading...");
pdia.show();
}
@Override
protected String doInBackground(String... urls) {
...
//do your login scheme
...
//context.methods()
return "ok";
}
@Override
protected void onPostExecute(String result) {
pDialog.dismiss();
if(result!=null && result.equals("ok")){
//login was successfully done
} else {
//login has failed
}
}
}要使用这个异步任务,你应该调用:
new MyAsync(this).execute(null, null , null);顺便说一句,this是您的活动/片段。
https://stackoverflow.com/questions/39626235
复制相似问题