Управление сессией 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);
Поэтому я не думаю, что вы написали правильно.