0

사용자가 인터넷에 연결되어 있는지 확인하는 방법이 있습니다. 온라인에 연결하는 데 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(); 

    } 

답변

2

단계-1 :이 클래스 내에서 당신의 checkConnection를 넣어() 메소드 :는,

public class BaseActivity extends ActionBarActivity { 

단계-2 같은 기본 작업 만들기 .

스텝 -3 : BaseAcitivity를 사용하여 앱의 모든 활동을 확장하고 특정 방법을 호출하십시오.

public class YourActivity extends BaseActivity { 

이 기능이 작동하는지 알려주세요.

+0

괜찮 으면 좋겠지 만 18 가지 활동이 있으며 그 중 일부는 이미 FragmentActivity와 다른 ActionBarActivity를 확장합니다. 어떻게 관리 할 수 ​​있습니까? 나는 매우 새로운 안드로이드 개발 –

+0

내가 생각할 수있는 한 가지 제안은 정적 방법으로 만드는 것이다. – Chitrang