1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Unicate, 26.10.2011 #1
    Unicate

    Unicate Threadstarter Android-Experte

    Hallo alle zusammen!

    Ich habe eine GridView mit ein paar Bildern drauf. Wenn ich nun die SD-Karte am PC mounte, dann soll sich die Activity NICHT schliessen.
    Wie verhindere ich das?
     
  2. Unicate, 27.10.2011 #2
    Unicate

    Unicate Threadstarter Android-Experte

    Kann keiner helfen?

    Was ich bisher herausgefunden habe:

    Wenn man soetwas realsieren möchte muss man in der Activity einen Broadcastreceiver registrieren, welchem man den richtigen IntentFilter geben muss.

    Das habe ich so gelößt:
    PHP:
    protected void onResume() {
            
    super.onResume();
            
    IntentFilter intentFilter = new
            
    IntentFilter(Intent.ACTION_MEDIA_EJECT);
            
    intentFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
            
    intentFilter.addDataScheme("file");
            
    intentFilter.addDataAuthority("*"null);
            
    // registering the receiver
            
    registerReceiver(_receiverintentFilter);
        }
        
        protected 
    void onPause() {
            
    super.onPause();
            
    unregisterReceiver(_receiver);
        };

        private 
    BroadcastReceiver _receiver = new BroadcastReceiver() {
            @
    Override
            
    public void onReceive(Context contextIntent intent) {
                
                
    Debug.e(TAG"intent: " intent.getAction());
                if(
    intent.getAction().equalsIgnoreCase(Intent.ACTION_MEDIA_EJECT)) {
                    
    Debug.e(TAG"ejecting...");
                } else if(
    intent.getAction().equalsIgnoreCase(Intent.ACTION_MEDIA_MOUNTED)) {
                    
    initialize();
                }
            }
            
        };
    Im receiver der eject-action sollten alle files freigegeben werden, sodass die Karte auf dem PC gemountet werden kann.

    Problem ist aber, das die Activity beendet wird bevor der Intent darin ankommt. Was zur Folge hat das onPause eher aufgerufen wird als der Intent ankommt was wiederrum zur Folge hat das der Intent gar nicht mehr ankommen kann.
     
  3. Fr4gg0r, 27.10.2011 #3
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    dann ruf unregister halt erst in onDestroy auf..
     
  4. Unicate, 28.10.2011 #4
    Unicate

    Unicate Threadstarter Android-Experte

    Naja, prinzipiell jast du ja recht, aber wenn onPause aufgerufen wird, dann heisst das ja das die Activity sowieso schon beendet wird. was zur Folge hat, das wenn ich es schaffe auf das EJECT zu reagieren, die Activity sich aber trotzdem schliessen wird.
     
  5. Fr4gg0r, 28.10.2011 #5
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    starte deine app einfach neu im broadcastreceiver
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Bitmap von Activity an Activity übergben Android App Entwicklung 03.09.2017
[OFFEN] Activity als Dialog - RecyclerView funktioniert nicht mehr Android App Entwicklung 14.08.2017
[OFFEN] Problem mit meiner Login App Android App Entwicklung 10.06.2017
[GELÖST] Nach AS Update Fehler Error running app: Default Activity not found Android App Entwicklung 16.05.2017
[GELÖST] Übergabe an zweite Activity Android App Entwicklung 11.05.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
Intent mit Daten (putExtra) zu anderer Activity Android App Entwicklung 14.02.2017
Snackbar beenden Android App Entwicklung 31.12.2016
Bestätigungsdialog in der Activity Android App Entwicklung 19.12.2016
Online-Kalender in einem Fragment/einer Activity Android App Entwicklung 17.11.2016
Du betrachtest das Thema "Das Beenden einer Activity vermeiden..." im Forum "Android App Entwicklung",