2014-02-13 4 views
-2

У меня есть активность, которая содержит обработчик, который мне нужно запустить для всего приложения. То, что мне нужно сделать, - это вызвать активность обработчика всякий раз, когда начинается основная активность, а затем, выполняя функцию при работе с обработчиком, активность обработчика должна начинать намерение во вторую активность.Начало действия Намерение от Android-приложения

Это мой код:

public class MyApp extends Application { 

    public void onCreate() { 
     h = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
     Bundle b = msg.getData(); 
       Log.d("tag",b.getString("msg")); 

       //THIS IS WHERE I WANT TO OPEN SECONDACTIVITY 
     } 
    }; 
    } 
} 

MyApp глобальный класс Application Я использую для запуска сокета-соединения через все приложение. Он должен быть жив, пока приложение работает.

+0

Можете ли вы объяснить немного больше, что именно вы хотите сделать. – InnocentKiller

+0

что вы точно хотите сделать чуваком –

+0

'Приложение' не является' Деятельностью'. Попробуйте начать с MainActivity. –

ответ

1

Его простой

Intent intent = new Intent(YourActivityClass.this, SECONDACTIVITY.class); 
startActivity(intent); 
1
public class MyApp extends Application { 

     public void onCreate() { 
      h = new Handler() { 
      @Override 
      public void handleMessage(Message msg) { 
       Bundle b = msg.getData(); 


       Log.d("tag",b.getString("msg")); 
       Intent myIntent = new Intent(this, YourSecondActivity.class); 
       startActivity(myIntent); 
      } 
     }; 


     } 
    } 

добавить Также это ваш файл манифеста

<activity android:name=".YourSecondActivity" /> 
0

Сначала добавьте информацию о деятельности в AndroidManifest.xml LIKE

<activity 
    android:name="com.assignment.matchnumber.PlayActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="com.assignment.matchnumber.PLAY" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

Затем положить это в вашей деятельности MyApp где вы хотите.

Intent openPlayActivity = new Intent("com.assignment.matchnumber.PLAY"); 
startActivity(openPlayActivity); 

благодаря --Sajib

0

Ну Оказывается, что мне нужно добавить: i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

Intent i = new Intent(MyApp.this, SecondActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(i); 

Потому От MainActivity, я назвал MyApp (Класс для поддержания глобального состояния приложения). Затем в MyApp я обрабатываю что-то, а затем вызываю SecondActivity.

+0

Извините, это не имеет смысла. Можете ли вы уточнить? Вам не нужно устанавливать 'Intent.FLAG_ACTIVITY_NEW_TASK', если вы не запускаете' Activity', но не из контекста 'Activity' (то есть: из' Service' или 'BroadcastReceiver' –

+0

Ну, MyApp не является активностью Это класс приложения Android. –

+0

Да, но вы можете вызывать методы на нем из Activity, и они будут вызваны в контексте Activity. –

Смежные вопросы