2012-02-27 52 views

回答

1

我看來,像您可以使用全局變量,它可以在活動中使用(也回答一些沒有提出的問題)。)

出於同樣的,你可以擴展android.app.Application類,

需要維護全局應用程序狀態的基類。您可以通過在您的AndroidManifest.xml標籤中指定其名稱來提供您自己的實現,這將在您的應用程序/軟件包創建過程中爲您實例化該類。


來自實例Another question

public class MyApplication extends Application { 

    private String someVariable; 

    public String getSomeVariable() { 
     return someVariable; 
    } 

    public void setSomeVariable(String someVariable) { 
     this.someVariable = someVariable; 
    } 
} 

然後在你的活動,你可以獲取和設置像這樣的變量:

// set 
((MyApplication) this.getApplication()).setSomeVariable("foo"); 

// get 
String s = ((MyApplication) this.getApplication()).getSomeVariable(); 

如示例中給出, 你的VA可以從一項活動(或按鈕點擊任何項目)獲得,並且獲得,該值可用於其他活動。

+0

看不到這樣更好,那麼只需在打開新活動時添加額外的內容即可。這將保持變量在內存中... – 2012-02-28 08:14:05

1

選項1: 創建的發送活動定製的意圖(例如:CurrentActivity):

public static final String RESTART_CHAT_POLLING_INTENT = "com.cleeqa.android.chat.restart.intent"; 

廣播它:

Intent i = new Intent(); 
i.setAction(RESTART_CHAT_POLLING_INTENT); 
mContext.sendBroadcast(i); 

註冊你想要的活動一個BroadcastReceiver收到(NewActivity):

BroadcastReceiver myReceiver = new MyBroadcastReceiver(); 
IntentFilter filter = new IntentFilter(); 
filter.addAction(CurrentActivity.RESTART_CHAT_POLLING_INTENT); 
registerReceiver(myReceiver, filter); 

接收廣播(同樣在NewActivity):你想

Intent intent = new Intent(CurrentActivity.this, NewActivity.class); 
intent.putExtra("PARAM", parameter); 
startActivity(intent); 

的onCreate /活性在onStart到:

private class MyBroadcastReceiver extends BroadcastReceiver { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      if (intent.getAction().equals(CurrentActivity.RESTART_CHAT_POLLING_INTENT)) { 

       //DO WHAT YOU WANT 

      } 
    } 

選項2(不需要廣播接收器): 的onClick接收(NewActivity):

Bundle extras = getIntent().getExtras(); 
     if (extras != null) { 
      parameter = extras.getString("PARAM"); 
     } 
1

是否需要您的應用程序dcast變量?如果您只是想將當前活動的變量傳遞給新活動,請通過調用startActivityForResult從當前的活動開始新的活動,並將該變量作爲參數傳遞。

,如果你不希望新的活動將結果發送回當前活動使用startActivity

1

我覺得它使用intent.putExtra("PARAM", parameter);getExtras()閱讀它是多的,他需要做什麼更容易和適當的傳遞!