我想使用 AsyncTask 创建启动屏幕。具体来说,在 doInBackground() 方法中,我使用静态方法 Thread.sleep() ,并在创建一个 Intent 后将应用程序重定向到其他 Activity 。我没有收到任何错误,但应用程序没有更改 Activity 。我的代码是:
/***This class redirects the user to the 'MainActivity'. ***/
class RedirectToMainActivityTask extends AsyncTask<Void, Void, Void>
{
protected Void doInBackground(Void... params)
{
try
{
Thread.sleep( 2 * 1000 );
}
catch ( InterruptedException e )
{
Log.e( "MAINACTIVITY-ERROR", e.getMessage());
showTheError( "Error while starting MainActivity: " + e.getMessage() );
}
Intent intent = new Intent( getApplicationContext(), MainActivity.class );
intent.addFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
startActivity( intent );
finish();
return null;
}
}
最佳答案
确保您在 list 中添加了该 Activity
<activity android:name="com.example.listissue.SecondActivity"/>
也不要调用 finish()
private class RedirectToMainActivityTask extends AsyncTask<Void, Void, Void>
{
protected Void doInBackground(Void... params)
{
try
{
Thread.sleep( 2 * 1000 );
}
catch ( InterruptedException e )
{
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
Intent intent = new Intent( getApplicationContext(), SecondActivity.class );
intent.addFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
startActivity( intent );
}
}
关于android - 使用 AsyncTask 进行 sleep ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37237573/