如何在Android中处理太多活动?

时间:2012-01-03 04:14:41

标签: android video android-activity android-videoview

我正在使用VideoView在我的应用中播放视频,因此我需要为每个视频创建大量活动。我的问题是,无论如何要处理这个问题?因为到目前为止我已经创建了100多个活动。由于活动过多,我不希望我的应用程序变得太大。

3 个答案:

答案 0 :(得分:0)

嗯,老实说,大多数开发人员必须在功能和低内存占用之间进行杂耍。尽可能实现最佳实施,同时牢记各种活动状态。阅读它here

这是你能做到的最好的事情。当其他活动应用需要资源时,Android将始终“杀死”在后台运行的活动。

答案 1 :(得分:0)

这是在单个活动中导航下一个/上一个视频的代码。喜欢播放列表。

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);
}  

}

希望对你有用。:)

答案 2 :(得分:-1)