사용자가 인터넷에 연결되어 있는지 확인하는 방법이 있습니다. 온라인에 연결하는 데 24 시간이 걸릴 경우 앱을 중지하고 사용자를 데리고 가야합니다. 로그인 활동은 작동하지만 문제는 로그인 후 첫 번째 활동에서이 메소드를 호출하므로 코드가 해당 활동에서만 실행되므로 전체 애플리케이션에서 호출하지 않아도됩니다. 각 액티비티에서 인스턴스화하면 할 수있는 방법이 있습니까? 방법? 도움이 될 것입니다. 여기 Android 세트 세션이 모든 활동에 한 번에 만료 됨
코드입니다 :public void checkConnection(){
Repositorio mRepositorio = new Repositorio(getApplicationContext());
SecurePreferences mSessao = new SecurePreferences(getApplicationContext(), "sessao");
CredencialModel mCredencialModel = mRepositorio.getCredencialPorId(Integer.valueOf(mSessao.getString("id_credencial")));
try {
Date dNow = new Date();
String dt = String.valueOf(mCredencialModel.getUltimo_sincronismo()); // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(dt));
c.add(Calendar.DATE, 1); // number of days to add
dt = sdf.format(c.getTime()); // dt is now the new date
Date lastConnection = sdf.parse(dt);
Date dateNow = sdf.parse(sdf.format(dNow));
if(!mRepositorio.temConexao() && (lastConnection.before(dateNow))){
fnTrocarUsuario();
}
} catch (ParseException e) {
e.printStackTrace();
}
}
private void fnTrocarUsuario() {
SecurePreferences mSessao = new SecurePreferences(getApplicationContext(), "sessao");
mSessao.clear();
// After logout redirect user to Login Activity
Intent i = new Intent(getApplicationContext(), MainActivity.class);
// Closing all the Activities
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// Add new Flag to start new Activity
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Staring Login Activity
getApplicationContext().startActivity(i);
finish();
}
괜찮 으면 좋겠지 만 18 가지 활동이 있으며 그 중 일부는 이미 FragmentActivity와 다른 ActionBarActivity를 확장합니다. 어떻게 관리 할 수 있습니까? 나는 매우 새로운 안드로이드 개발 –
내가 생각할 수있는 한 가지 제안은 정적 방법으로 만드는 것이다. – Chitrang