2013-03-23 132 views
1

所以我想檢查我來自另一班的班級。例如,我有A,B,C類。現在,在B中有一個打開A類的意圖。而在C中,有一個打開A類的意圖。但是,根據我來自哪個類,我會可能必須爲該特定類別做一些不同的方法。好的,所以我會給你我的。我有一個Themes.class和一個Soft key.class。兩者都會打開一個Bmod.class。現在,幾乎兩個班都會做同樣的事情。唯一的區別是,當我下載文件時,輸出流將具有不同的目錄。所以,我繼續嘗試一些代碼。這是我試過的:Android - 檢查我來自哪個班級

      //Download the file 
      Object obj = null; 
      InputStream input = new BufferedInputStream(url.openStream()); 
      OutputStream output = null; 
      if(obj instanceof Themes){ 
      output = new FileOutputStream("/sdcard/plasma/battery/batterymod.zip"); 
      }if(obj instanceof Softkeys){ 
      output = new FileOutputStream("/sdcard/plasma/softkeys/softkeys.zip"); 
      } 

現在,當我運行應用程序,沒有下載。我假設我做錯了什麼,所以應用程序不知道輸出流是什麼。所以,我的問題是標題如下:我如何正確地檢查一個班級,我以前從哪裏來。謝謝。

回答

2
How do I properly check in one class which class I previously came from 

我認爲你的活動之間進行導航,讓你可以像這樣

ActivityManager am = (ActivityManager) context. 
    getSystemService(Activity.ACTIVITY_SERVICE); 
String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName(); 
String className = am.getRunningTasks(1).get(0).topActivity.getClassName(); 

在頂它使用清單

<uses-permission android:name="android.permission.GET_TASKS" /> 

我希望這將有助於許可您。

+0

我會試試看。那麼,我會使用類似的東西嗎? if(classname!= null){//代碼 – user2182912 2013-03-23 22:01:00

+0

這也行不通,除非我做錯了。你可能可以編輯你的文章的例子如何在我的情況下使用它(文件輸出流)? – user2182912 2013-03-23 23:00:04

2

當您調用startActivity(// intent activity A)時,只需放入額外的字符串intent.putExtra(「From」,「classB」//或「classC」)即可。在調用getIntent()。getStringExtra(「From」,「」)的onCreate方法中,並取決於您獲得的操作。

+0

我已經這樣做了,因此我可以確定要下載哪個文件。每個班級至少有50個額外費用,我不想說如果(extra1!= null || extra2!= null || extra3!= null等) – user2182912 2013-03-23 22:06:50

+0

爲什麼你需要50個額外費用。如果這些是要下載的文件的名稱,那麼你可以使用putStringArrayExtra – 2013-03-23 22:14:20

+0

我有很多不同的事情發生在每個被點擊的按鈕上,而不僅僅是下載。抱歉。我應該更清楚。 – user2182912 2013-03-23 22:17:21