Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Critically
10 / 10 / 0
Регистрация: 14.03.2011
Сообщений: 337
#1

Мигает активити после сплешскрина - Android

11.02.2013, 19:04. Просмотров 592. Ответов 2
Метки нет (Все метки)

Есть сплешскрин взятый с какого то сайта, он работает отлично
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class SplashScreen extends Activity {
 
   private static String TAG = SplashScreen.class.getName();
   private static long SLEEP_TIME = 3;    // Sleep for some time
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
 
      this.requestWindowFeature(Window.FEATURE_NO_TITLE);    // Removes title bar
      this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);    // Removes notification bar
 
      setContentView(R.layout.splash);
 
      // Start timer and launch main activity
      IntentLauncher launcher = new IntentLauncher();
      launcher.start();
   }
 
   private class IntentLauncher extends Thread {
      @Override
      /**
       * Sleep for some time and than start new activity.
       */
      public void run() {
         try {
            // Sleeping
            Thread.sleep(SLEEP_TIME*1000);
         } catch (Exception e) {
            Log.e(TAG, e.getMessage());
         }
 
         // Start main activity
         Intent intent = new Intent(SplashScreen.this, Rolls.class);
         SplashScreen.this.startActivity(intent);
         SplashScreen.this.finish();
      }
   }
}
Есть активити которая появляется после СплешСкрина:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class Rolls extends Activity implements
        OnItemClickListener {
 
    public static final String[] titles = new String[] { "Эби масаго ролл",
            "Филадельфия", "Футамаки шеф ролл", "Японка ролл","Капо маки","Абогадо маки" };
 
    public static final String[] descriptions = new String[] {
            "тигровая креветка, икра масаго, майонез",
            "сливочный сыр, авокадо, лосось", "угорь, тигровая креветка, омлет, авокадо, огурец, икра масаго, майонез",
            "лосось, огурец, сливочный сыр, салат, икра тобико, кунжут","ролл с огурцом","ролл с авокадо" };
   
    public static final String[] prices = new String[] { "150",
        "160", "260", "180", "50", "80" };
 
    public static final Integer[] images = { R.drawable.ebimasago_roll,
            R.drawable.philadelfiya_roll, R.drawable.phutamakishwf_roll, R.drawable.yaponka_roll, R.drawable.kapamaki_roll, R.drawable.abogadomaki_roll };
 
    ListView listView;
    List<RowItem> rowItems;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      
        rowItems = new ArrayList<RowItem>();
        for (int i = 0; i < titles.length; i++) {
            RowItem item = new RowItem(images[i], titles[i], descriptions[i], prices[i]);
            rowItems.add(item);
        }
 
        listView = (ListView) findViewById(R.id.listView1);
        CustomListViewAdapter adapter = new CustomListViewAdapter(this,
                R.layout.list_item, rowItems);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(this);
    }
 
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        Toast toast = Toast.makeText(getApplicationContext(),
            titles[position] + ": " + descriptions[position],
            Toast.LENGTH_SHORT);
        toast.setGravity(Gravity.CENTER|Gravity.CENTER_HORIZONTAL, 0, 0);
        toast.show();
    }
 
}
Когда появляется эта Активити, она появляется 1 раз и сразуже обновляется еще раз(Мигает)... Может кто подсказать в чем тут дело ?

Манифест:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
         android:name=".SplashScreen">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
        <activity
            android:name="yaponka.su.Rolls"
            android:label="@string/app_name" >
        </activity>
        <activity   
            android:name=".BigImages" 
            android:label="@string/app_name"
            android:exported="false">    
        </activity>
    </application>
Добавлено через 47 минут
Нашел новый пример со СплешСкрином, с ним работает все нормально, выложил, может кому понадобиться....
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class SplashScreen extends Activity {  
      
    /** 
     * Поток для обработки сообщений заставки 
     */  
    private Thread mSplashThread;      
  
      
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
  
        // Лэйаут заставки  
        setContentView(R.layout.splash);  
          
        final SplashScreen sPlashScreen = this;     
          
        // Поток для ожидания событий заставки  
        mSplashThread =  new Thread(){  
            @Override  
            public void run(){  
                try {  
                    synchronized(this){  
                        // Ждем некоторое время, или выход по прикосновению  
                    wait(5000);  
                    }  
                }  
                catch(InterruptedException ex){                      
                }  
  
                finish();  
                  
                // Запускаем основную форму  
                Intent intent = new Intent();  
                intent.setClass(sPlashScreen, MainActivity.class);  
                startActivity(intent);  
                                    
            }  
        };  
          
        mSplashThread.start();          
    }  
          
    @Override  
    public boolean onTouchEvent(MotionEvent evt)  
    {  
        if(evt.getAction() == MotionEvent.ACTION_DOWN)  
        {  
            synchronized(mSplashThread){  
                mSplashThread.notifyAll();  
            }  
        }  
        return true;  
    }      
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 19:04     Мигает активити после сплешскрина
Посмотрите здесь:

Android Запрет поворота экрана после создания активити
Android Вызов активити
Android Ошибки при востановление активити после уничтожения
Android Запуск таймера после закрытия второй Активити
После запуска приложения запускать не главное активити, а сервис Android
Android Не отображается игровое поле после выхода из другого активити
Приложение вылетает после перехода на новое активити Android
Android Приложение вылетает после перехода на второе активити
Адаптивность Активити Android
Android Скрыть элемент View после ввода логина и пароля на другом активити
Как изменится стек после вызова активити другого приложения Android
Android Вызов активити

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.02.2013, 19:21     Мигает активити после сплешскрина #2
Цитата Сообщение от Critically Посмотреть сообщение
SplashScreen.this.startActivity(intent);
* * * * *SplashScreen.this.finish();
возможно мигание из-за вызова finish после startActivity.

Добавлено через 1 минуту
Цитата Сообщение от Critically Посмотреть сообщение
finish(); *
// Запускаем основную форму *
* * * * * * * * Intent intent = new Intent(); *
* * * * * * * * intent.setClass(sPlashScreen, MainActivity.class); *
* * * * * * * * startActivity(intent);
здесь, как видите, сначала finish, потом startActivity
Critically
10 / 10 / 0
Регистрация: 14.03.2011
Сообщений: 337
11.02.2013, 19:57  [ТС]     Мигает активити после сплешскрина #3
Да я как раз на это обратил внимание...
Yandex
Объявления
11.02.2013, 19:57     Мигает активити после сплешскрина
Ответ Создать тему
Опции темы

Текущее время: 23:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru