2017-08-21 77 views
-1

以下是在onCreate方法完全執行後要加載的主要活動的代碼。
Refered 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活動永遠不會結束,並且應用程序被套牢加載屏幕上我要完成thisactivity作爲以前的活力onCreate方法全面執行
謝謝

+1

你有重寫了'onFinish()'的'LoadingIt'活動? – hsm59

+0

此外 - 您正在持有對活動的靜態引用。這永遠不會消失,除非你從某個地方手動清除 - >你正在創建一個內存泄漏! - 從你添加的鏈接。 – hsm59

+0

您能告訴我們您在DictionarySscWords活動中執行的任務嗎? –

回答

0

我覺得你的解決方案並不是最佳實踐。以下是我會做:

  1. 聲明LoadingIt活性作爲啓動活動

  2. onCreate方法,在後臺加載所需要的資源(或者與一個AsyncTask或者例如IntentService

  3. 一旦裝載完成,完成LoadingIt活性並顯示DictionarySscWords活性

如果您發佈加載邏輯,我可以提供一個示例實現。

+0

DictionarySscWords不是啓動器類 – phpdroid

+0

「啓動器類」是什麼意思,「DictionarySscWords」是一個活動,對不對?因此,您可以在加載完成後使用意向來啓動它,並傳遞加載的數據。 –

0

您可以在LoadingIt類的onCreate()使用線程

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(); 
} 
相關問題