2016-03-25 24 views
0

Ich habe vor kurzem begonnen, an einem einfachen Android-Projekt zu arbeiten, aber es sieht so aus, als könnte ich es einfach nicht zum Laufen bringen. Ich habe eine Hauptaktivität (Es hat @ style/Invisible-Parameter), die prüft, ob mein Dienst läuft und startet es, wenn es nicht ist. Bevor die Prüfung stattfindet, startet sie eine weitere Aktivität für das Ergebnis. Es wird erwartet, dass die Aktivität den Benutzernamen und das Passwort des Benutzers zurückgibt, damit sich die App im System anmelden kann. Das Problem ist, dass es funktioniert, wenn ich die App auf meinem Handy installiere, aber das nächste Mal, wenn ich die App öffne, passiert nichts. Ich muss es neu installieren.Aktivität wird nicht gestartet, wenn auf das Symbol geklickt wird

Hier ist die Hauptaktivität:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

    Intent intent = new Intent(this, LoginGrabber.class); 
    startActivityForResult(intent, 100); 

    if(isMyServiceRunning()==false) 
    {  
     startService(new Intent(getApplicationContext(), MyService.class)); 
     Log.i("com.connect","startService"); 
    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    if(requestCode == 100){ 
     if(resultCode == RESULT_OK){ 
      String username = data.getStringExtra("Username"); 
      String password = data.getStringExtra("Password"); 
      //TODO Send to server 
      Toast.makeText(this, "Username: " + username + "  Password: " + password, Toast.LENGTH_LONG); 
     } 
    } 
} 

private boolean isMyServiceRunning() { 
    ActivityManager manager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); 
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 
     if (MyService.class.getName().equals(service.service.getClassName())) { 
      return true; 
     } 
    } 
    return false; 
} 

LoginGrabber Aktivität:

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

public void onSendData(View view){ 
    Intent intent = new Intent(); 
    intent.putExtra("Username", ((TextView) findViewById(R.id.email)).getText()); 
    intent.putExtra("Password", ((TextView) findViewById(R.id.password)).getText()); 
    setResult(RESULT_OK, intent); 
    finish(); 
} 

Hier ist das Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.app.test" 
android:versionCode="2" 
android:versionName="2.0"> 

<uses-sdk 
android:minSdkVersion="10" 
android:targetSdkVersion="18" /> 

<supports-screens 
android:largeScreens="true" 
android:resizeable="true" 
android:xlargeScreens="true" /> 

<uses-permission 
android:name="android.permission.INTERNET" 
android:required="true" /> 

<application 
android:icon="@drawable/launcher" 
android:label="@string/app_name" 
android:theme="@style/Invisible"> 
<activity 
android:name="com.connect.Main" 
android:excludeFromRecents="true"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 

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

<service 
android:name="com.connect.MyService" 
android:enabled="true" 
android:exported="true" /> 

<activity 
android:theme="@style/AppTheme" 
android:name="com.connect.LoginGrabber" 
android:label="@string/title_activity_login_grabber" /> 
</application> 

</manifest> 

Was mache ich falsch?

Danke für Ihre Hilfe!

+0

Bitte teilen Sie XML, Manifest und Service-Code –

+0

Wo wird Ihre OnSendData-Methode aufgerufen? – mmcoder10

+0

@mman Es wird aufgerufen, wenn die Taste gedrückt wird. In XML hat es den 'android: onClick =" onSendData "' Parameter. –

Antwort

0

OK! Ich habe das Problem gefunden! Das Problem war, dass meine Anwendung abstürzte, sobald der Dienst gestartet wurde, da ich die App ohne Internet und ohne Fehler, die ausgelöst wurden, wenn kein Internet verfügbar war, getestet habe.

Nur musste WiFi einschalten, das war's!