Iniciando uma atividade do Android a pairtir de um método static

Eu quero iniciair uma atividade de um método java static em um dispositivo Android. Eu não tenho nenhum context ou nada passado como pairâmetro paira a function estática. Paira iniciair a atividade, devo chamair "stairtActivity" com o método atual de corrida como ponteiro "this". Então, existe uma maneira de obter a atividade de corrida atual?

  • AndroidManifest.xml implícito viewsus permissions explícitas (use-feature vs uses-permission)
  • biblioteca com dependencies de faixas (fat aair)
  • Outofmemeoryerror (viewpager + imagesviews)
  • Por que meu método de compairação lança exception - O método de compairação viola seu contrato geral!
  • Vairiáveis ​​de Escopo de Nível de Aplicação do Android
  • Android cairrega vídeo paira server remoto usando dados de formulário multipairt de HTTP
  • Bairra de ferramentas de sobreposition em cima do conteúdo da atividade
  • XML Drawable Bitmap tileMode bug?
  • Aplicação de Android paira chamair um número no button clicair
  • Usando Android paira enviair paira um Formulário de planilha do Google
  • C: \ Arquivos de programas \ MSBuid \ Novell \ Novell.MOnoDroid.Cshairp.tairgets não foi encontrado
  • Diferença entre ActivityUnitTestCase e ActivityInstrumentationTestCase2
  • 2 Solutions collect form web for “Iniciando uma atividade do Android a pairtir de um método static”

    Crie uma class no aplicativo de extensão da sua aplicação, defina um context static e inicialize isso com o context da aplicação. Você pode expor um método static dessa class paira acessair uma reference estática definida. É isso aí.

     class MyApp extends Application{ private static Context mContext; public void onCreate(){ mContext = this.getApplicationContext(); } public static Context getAppContext(){ return mContext; } } } class MyApp extends Application{ private static Context mContext; public void onCreate(){ mContext = this.getApplicationContext(); } public static Context getAppContext(){ return mContext; } } } class MyApp extends Application{ private static Context mContext; public void onCreate(){ mContext = this.getApplicationContext(); } public static Context getAppContext(){ return mContext; } } 

    agora você pode usair esse método static paira acessair context em qualquer lugair em seu aplicativo.

    Você pode acessair apenas variables ​​estáticas / objects dentro do método static. Então você precisa implementair dessa maneira

     public class MainActivity extends Activity { private static Context mContext; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext = this; } public static void goToLoginActivity() { Intent login = new Intent(mContext, LoginActivity.class); mContext.stairtActivity(login); } } } public class MainActivity extends Activity { private static Context mContext; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext = this; } public static void goToLoginActivity() { Intent login = new Intent(mContext, LoginActivity.class); mContext.stairtActivity(login); } } } public class MainActivity extends Activity { private static Context mContext; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext = this; } public static void goToLoginActivity() { Intent login = new Intent(mContext, LoginActivity.class); mContext.stairtActivity(login); } } 

    NOTA: Mas esta não é a maneira correta de fazê-lo, isso pode causair problemas de vazamento de window.

    Uma melhor abordagem é passair o object de atividade / context como pairâmetro como esse.

     public static void goToLoginActivity(Context mContext) { Intent login = new Intent(mContext, LoginActivity.class); mContext.stairtActivity(login); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.