2016-03-25 18 views
0

最近、単純なAndroidプロジェクトで作業を開始しましたが、うまく動作しないようです。私は主なアクティビティ(@スタイル/不可視のパラメータを持っています)を持っています。私のサービスが動作しているかどうかをチェックし、そうでなければ起動します。また、チェックが行われる前に、結果の別のアクティビティが開始されます。このアクティビティでは、ユーザーのユーザー名とパスワードが返され、アプリがシステムにログインできるようになります。問題は、私が自分の携帯電話にアプリケーションをインストールするとうまくいくが、次回は何も起こらないということだ。私はそれを再インストールする必要があります。アイコンがクリックされたときにアクティビティが開始しない

ここでは主な活動です:

@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活動:

@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(); 
} 

はここにマニフェストです:

<?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> 

私が間違って何をしているのですか?

ありがとうございました!

+0

xml、マニフェスト、サービスコードをご記入ください –

+0

あなたのonSendDataメソッドはどこにありますか? – mmcoder10

+0

@ mmanボタンを押すと呼び出されます。 XMLには 'android:onClick =" onSendData "パラメータがあります。 –

答えて

0

OK!私は問題を見つけた!問題は、インターネットがなくてもアプリケーションをテストしていて、インターネットが利用できないときにスローされたエラーを処理せずに、サービスが開始されるとすぐにアプリケーションがクラッシュしていたということでした。

ちょうどWiFiをオンにしなければならなかった、それだけです!

関連する問題