2014-01-27 5 views
7

Ich gründe Aktivität Theme Theme.NoDisplay aber wenn es offen, aber auf Zurück-Taste drücken Aktivität nicht zu schließen/zu zerstören. Es sollte beim Zurückdrücken schließen/zerstören.Aktivität Schließen nicht auf Zurück drücken, wenn Thema ist Theme.NoDisplay

Jungs helfen mir, warum dies so ist und jede Lösung, dieses Problem zu beheben.

public class MainActivity extends Activity { 

    // Tag of the Activity 
    private static String TAG = "MainActivity"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     DatabaseManager.init(this); 

     NFCIItem mNFCItem = new NFCIItem(); 
     mNFCItem.setSerialNumber(1); 

     DatabaseManager.getInstance().addWishList(mNFCItem); 
     final List<NFCIItem> wishLists = DatabaseManager.getInstance().getAllNFCSerialNumber(); 
     Log.v(TAG, wishLists.toString()); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
} 

AndroidManifest.xml

<activity 
    android:name="com.example.appdemo.MainActivity" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoDisplay" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
+0

ich vorstellen, es zu schließen, aber Sie sehen keinen Beweis dafür, weil es ‚NoDisplay‘. Machen 2 Backs das, was Sie erwarten? Und warum sollte eine NoDisplay-Aktivität, die in onCreate nicht beendet wird(), verwendet werden? Wenn keine Benutzeroberfläche sichtbar ist, sollten Sie sie nicht am Leben erhalten. Können Sie erklären, welche UI/Arbeitsabläufe Sie hier erreichen möchten? – NigelK

+0

@NigelK Wie ich weiß den NFC-Tag zu scannen, müssen Sie die Aktivität machen. In unserem Fall gibt es keine Ansichten zu der Aktivität. Also habe ich gedacht, es unsichtbar zu machen. –

Antwort

3

ich vorstellen, es zu schließen, aber Sie sehen kein Beweis dafür, weil es "NoDisplay" ist. Eine Aktivität, die dieses Design verwendet, hat keine sichtbare Benutzeroberfläche (daher ist es nicht logisch, dass eine solche Aktivität UI-Ereignisse verarbeitet) und sollte nicht am Leben erhalten werden. Sehen Sie diese Frage zum Beispiel:

how to completely get rid of an activity's GUI (avoid a black screen)

Wenn Sie diese Aktivität des wollen Layout sichtbar zu sein, und Ereignisse zu behandeln, sollten Sie ein anderes Thema verwenden. Wenn dies jedoch eine unsichtbare Aktivität ist, die nur eine Hintergrundverarbeitung durchführt, rufen Sie finish() in onCreate auf, um sie zu schließen, wenn diese Verarbeitung abgeschlossen ist.

+1

auch interessant zu wissen: http://stackoverflow.com/a/4552127/180538 – WarrenFaith

-2
@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event){ 
     if (keyCode == KeyEvent.KEYCODE_BACK){ 
      YourActivity.this.finish(); 

      return true; 
     } 

überschreiben diese Methode

+1

-1 für Code nur beantworten. – WarrenFaith

+0

WarrenFaith: Hey was ist falsch mit diesem .. ??? –

+0

ich debuggen die Anwendung dieses Verfahren ausgeführt wird auf das Thema nicht zu Theme.NoDisplay –

-3

@Override public void onBackPressed() {

    Intent intent = new Intent(Intent.ACTION_MAIN); 
        intent.addCategory(Intent.CATEGORY_HOME); 
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        startActivity(intent); 
        finish(); 
        overridePendingTransition(R.anim.slide_in_right, 
          R.anim.slide_out_right); 
          } 
+2

-1 für Code-Einstellung nur beantworten. – WarrenFaith

+0

ich Debuggen die Anwendung, diese Methode zum Einrichten des Themas nicht ausführen Theme.NoDisplay –

Verwandte Themen