2012-02-02 227 views
0

我目前正在開發一個Android 2.2應用程序,需要從另一個恢復到主要活動。恢復到主要活動

我使用這個代碼:

private void btnAbort_OnClick(View v) 
    { 
     startActivity(new Intent(v.getContext(), Main.class)); 
     finish(); 
    } 

但是當我調用該方法(通過點擊一個按鈕),我收到以下錯誤:

02-02 20:05:19.117:E/dalvikvm(864):無法打開堆棧跟蹤文件'/data/anr/traces.txt':權限被拒絕

這是怎麼回事?

編輯: 清單的代碼:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="eu.game" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="7" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".Main" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".SingleplayerActivity" 
      android:theme="@android:style/Theme.NoTitleBar"> 
      <intent-filter> 
       <action android:name="eu.game.SINGLEPLAYERACTIVITY" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+0

請放在這裏你的AndroidManifest代碼 – 2012-02-02 20:15:46

+0

把這兩個活動的代碼 – waqaslam 2012-02-02 20:17:45

回答

0

我通過爲第二個活動創建一個新線程解決了問題。感謝你的幫助。

0

試圖傳遞v.getContext的這個代替()。

您的代碼是否有任何長時間運行的操作?

+0

我也試過這個。我犯了同樣的錯誤。我的應用幾乎是空白的,在兩個活動佈局上只有幾個按鈕,但除了在單擊按鈕時切換兩個活動之外,沒有其他功能。 – user1186043 2012-02-02 20:37:19

+0

你可以讓你打電話完成更明確:YourActivityClass.this.finish() – Snicolas 2012-02-02 20:52:40

+0

生成相同的錯誤。 – user1186043 2012-02-02 21:09:10

2

如果你是恢復爲主要活動,而不僅僅是啓動它,沒有理由調用startActivity。只需完成當前的活動,Android就會將其從活動堆棧中彈出並轉到上一個。欲瞭解更多信息,您可以閱讀文檔中的Android Activity Lifecycle

+0

我試過只使用finish(),但是我得到相同的錯誤。 – user1186043 2012-02-02 20:34:35