Как обрабатывать слишком много Activites в Android? - PullRequest
0 голосов
/ 03 января 2012

Я использую VideoView для воспроизведения видео в своем приложении, поэтому мне нужно создавать множество действий для каждого видео.У меня вопрос, есть ли способ справиться с этим?Потому что я создал более 100 видов деятельности.Я не хочу, чтобы мое приложение становилось слишком большим из-за слишком большой активности.

Ответы [ 3 ]

0 голосов
/ 03 января 2012

Ну, честно говоря, большинству разработчиков приходится выполнять манипуляцию между функциональностью и нехваткой памяти.Наилучшая возможная реализация осуществляется с учетом различных состояний деятельности.Читайте об этом здесь

Это лучшее, что вы можете сделать со своей стороны.Android всегда «убивает» действия, выполняющиеся в фоновом режиме, когда ресурсы требуются для других активных приложений.

0 голосов
/ 03 января 2012

здесь код для перехода к следующему / предыдущему видео в одном действии.как плейлист.

public class Test11Activity extends Activity {
private int currentVideo=0;
ArrayList<String> httpLinkArrayList = new ArrayList<String>();
 VideoView videoView;
 Button n_button;
 Button p_button;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    httpLinkArrayList.add("http://abb.mp4");
    httpLinkArrayList.add("http://abb1.mp4");
    httpLinkArrayList.add("http://abb2.mp4");
    httpLinkArrayList.add("http://abb3.mp4");
    httpLinkArrayList.add("http://abb4.mp4");


    LinearLayout mainlayout = new LinearLayout(this);

mainlayout.setOrientation (LinearLayout.VERTICAL);LinearLayout n_p_layout = new LinearLayout (this);

    n_button = new Button(this);
    n_button.setText("Next");
    n_button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub              
            if(currentVideo<httpLinkArrayList.size()){
                currentVideo++;
                videoView.setVideoURI(Uri.parse(httpLinkArrayList.get(currentVideo)));
                videoView.start();
            }
        }
    });
    p_button = new Button(this);
    p_button.setText("Previous");
    p_button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub              
            if(currentVideo>0){
                currentVideo--;
                videoView.setVideoURI(Uri.parse(httpLinkArrayList.get(currentVideo)));
                videoView.start();
            }
        }
    });
    n_p_layout.addView(n_button);
    n_p_layout.addView(p_button);        

    videoView = new VideoView(this);
    videoView.setVideoURI(Uri.parse(httpLinkArrayList.get(currentVideo)));
    videoView.start();
    videoView.setOnCompletionListener(new OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer arg0) {
            // TODO Auto-generated method stub              
            if(currentVideo<httpLinkArrayList.size()){
                                    currentVideo++;
                videoView.setVideoURI(Uri.parse(httpLinkArrayList.get(currentVideo)));
                videoView.start();
            }
        }
    });

    mainlayout.addView(n_p_layout);
    mainlayout.addView(videoView);

    setContentView(mainlayout);
}  

}

надеюсь, полезно для вас .:)

0 голосов
/ 03 января 2012

@ Леон, вы можете использовать просмотр флиппер

это может помочь вам

http://www.bogotobogo.com/Android/android9TabWidgetFlipper.html#SlidingDrawer

http://www.warriorpoint.com/blog/2009/05/29/android-switching-screens-by-dragging-over-the-touch-screen/

...