Управление сессией Android не работает

Я пытаюсь управлять сессиями в Android. Я использую общие настройки для хранения пользовательских данных. Проблема возникает, когда любой пользователь входит в систему идеально, и домашняя страница моего приложения должна открыться сейчас, но Logcat отображает ошибку, что нет никаких действий для обработки этой страницы.
Вот код для Login.java.

public class Login extends Activity {
    Button but;
    TextView tex,tex2;
    EditText nameEdit,passEdit;

    public static final String MyPREFERENCES = "MyPrefs" ;
       public static final String name = "nameKey"; 
       public static final String pass = "passwordKey"; 
       SharedPreferences sharedpreferences;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    but=(Button)findViewById(R.id.login);

 // nameEdit, passEdit get the user entered username and password respectively.
    nameEdit = (EditText)findViewById(R.id.editText1);
    passEdit = (EditText)findViewById(R.id.editText2);

but.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

//storing userdetails in Shared Preference
         Editor editor = sharedpreferences.edit();
              String u = nameEdit.getText().toString();
              String p = passEdit.getText().toString();
              editor.putString(name, u);
              editor.putString(pass, p);
              editor.commit();
             Intent openStartingPoint=new Intent("app.something.com.Menu");
            startActivity(openStartingPoint); //here occurs the error no activity found to handle this
            finish();
            return;

        }
    });
}    
   @Override
   protected void onResume() {

 //if user already logged in then direct him to "Menu".
      sharedpreferences=getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
      if (sharedpreferences.contains(name))
      {
      if(sharedpreferences.contains(pass)){
         Intent i = new Intent("app.something.com.Menu");  
         startActivity(i);     
      }
      }
      super.onResume();
   }
}

Для выхода из системы используется следующий метод, при котором редактор общих настроек очищается

   public void logout()
   {
    SharedPreferences sharedpreferences = getSharedPreferences(Login.MyPREFERENCES,Context.MODE_PRIVATE);
    Editor editor = sharedpreferences.edit();
    editor.clear();
    editor.commit();
    moveTaskToBack(true);
    Control_panel.this.finish();                            
    return;
   }

И это код манифеста:

<activity
        android:screenOrientation="portrait"
        android:name="app.something.com.Login"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

  <activity
     android:name="app.something.com.Menu"
     android:label="@string/app_name" >
        <intent-filter>
            <action android:name="app.something.com.Menu" />

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

Я не знаю, почему я получаю исключение ActivityNotFoundException, хотя файл Menu.java расширяет класс Activity и также упоминается в манифесте. После этого исключения Runtime, когда я снова запускаю свое приложение, я сразу перехожу к действиям, соответствующим Menu.java, что и должно произойти. Но исключение происходит только тогда, когда кто-то пытается войти в систему.
Пожалуйста, помогите мне!
Заранее спасибо:)

1 ответ

Намерение открыть / запустить другое действие похоже на

Intent launchAnotherActivity = new Intent(CurrentActivity.this, 
                                             AnotherActivity.class);
startActivity(launchAnotherActivity);

Поэтому я не думаю, что вы написали правильно.

Другие вопросы по тегам