以下是在 onCreate 方法完全执行后要加载的主要活动的代码。
提到This for closing one activity from another
public class DictionarySscWords extends AppCompatActivity implements View.OnClickListener, TextToSpeech.OnInitListener
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
context = this;
Intent myIntent = new Intent(DictionarySscWords.this,LoadingIt.class);
startActivity(myIntent);
setContentView(R.layout.activity_main);
//all this activity work
LoadingIt.fa.finish(); //close Loading activity
}
}
现在这里是我的loadingIt活动的代码
public class LoadingIt extends AppCompatActivity {
Context context;
public static LoadingIt fa;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loading_it);
context=this;
fa = this;
ProgressDialog dialog=new ProgressDialog(context);
dialog.setMessage("Loading Please wait!!");
dialog.setCancelable(false);
dialog.setInverseBackgroundForced(false);
dialog.show();
}
}
问题是 LoadingIt 活动永远不会完成且应用程序停留在加载屏幕上我想完成此活动,因为先前的活动 onCreate 方法已完全执行 感谢
答案 0 :(得分:0)
我觉得你的解决方案并不是最好的做法。这就是我要做的事情:
将LoadingIt
活动声明为启动活动
在onCreate
方法中,加载后台所需的资源(例如AsyncTask
或IntentService
加载完成后,完成LoadingIt
活动并显示DictionarySscWords
活动
如果您发布加载逻辑,我可以提供示例实现。
答案 1 :(得分:0)
你可以在LoadingIt类的onCreate()中使用Thread
public class LoadingIt extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_loading_it);
Thread loadingThread = new Thread() {
@Override
public void run() {
try {
super.run();
sleep(2000);
} catch (Exception e) {
} finally {
Intent main = new Intent(LoadingIt.this,MainActivity.class);
startActivity(main);
finish();
}
}
};
loadingThread.start();
}