回答

2

您也可以使用應用程序類聲明的全局變量

class Globalclass extends Application { 

    private String myState; 

    public String getState(){ 
    return myState; 
    } 
    public void setState(String s){ 
    myState = s; 
    } 
} 

class TempActivity extends Activity { 

    @Override 
    public void onCreate(Bundle b){ 
    ... 
    MyApp appState = ((MyApp)getApplicationContext()); 
    String state = appState.getState(); 
    ... 
    } 
} 

更新:

簽出這個很好的教程關於如何做到這一點。

Application Class Using as Global

+0

感謝來自印度的Suri。但是存儲數據呢?您是否需要使用存儲其他活動數據的方法更新代碼? –

+1

那麼,你可以使用setState(「state set」)以相同的方式存儲數據。 –

+0

這不是存儲數據的好方法。我曾經使用這種方法,但似乎很容易出錯。例如,如果以這種方式保存一些數據,然後運行需要大量內存的另一個應用程序,則應用程序將被終止,並且此全局狀態將丟失。 – Michael

1

爲此,您可以使用static variableSharedPreferences或者如果您的數據量很大,那麼您可以使用SQlite

+0

我不想使用SQLite,因爲我已經有了它。那麼還有其他替代品嗎? –

+0

如果你不需要這個值,當應用程序再次啓動,然後嘗試使用靜態變量.. –

1

您可能想要使用處理程序的handleMessage()並在消息中傳遞該對象。

  Handler handler = new Handler(){ 
    @Override 
    public void handleMessage(Message msg) { 
      } 
      }; 

然後可以調用handler.handleMessage(MSG),你可以將任意對象msg.onj

+0

請給我一些例子或代碼,我怎麼能做到這一點。 。 。 –

+0

我編輯了我的答案,例如...希望這可以幫助 – CommonMan

1

你可以把數據庫的幫助,像SQLite的,或者你可以去恆類的概念,你可以做一個公共靜態變量和數據存儲在其他activity.Hope這會一個活動和訪問幫你。

1

是有很多方法的值傳遞給一個活動:

  • 您可以使用IntentFLAG_ACTIVITY_REORDER_TO_FRONT。在這種情況下,將調用onNewIntent()方法已啓動的活動。
  • 您可以使用靜態字段或靜態方法將新數據傳遞給您的活動。但這並不是一個好方法,因爲即使前臺程序和所有靜態數據都丟失,應用程序有時也會被終止。
  • 您可以使用廣播消息將新數據發送到活動。在這種情況下,活動必須註冊BroadcastReceiver

我認爲這不是很難彌補更多的方式來傳遞參數。

相關問題