2012-11-28 2 views
0

사용자 선택에 따라 특정 시간 간격으로 앱을 닫고 싶습니다.효율적인 방법으로 특정 시간대에 앱을 닫을 수 있습니다.

그래서 내가 한 것은 시간 간격 목록을 표시하고 해당 목록 항목에 따라 처리기 및 실행 가능 및 지연 후 방법으로 전달 된 항목을 선택하는 것입니다. 앱에서 특정 시간에 종료하는 데 다른 사람과 효율적인 방법을 알 수 있습니까?

다음은 충분이있는 postDelayed() 방법을 사용하여 짧은 지연에 대한 내 코드

일반적으로
setContentView(R.layout.audio_player); 
    mp = new MediaPlayer(); 
     lv1=(ListView)findViewById(R.id.listView1); 
    Button b = (Button)findViewById(R.id.stop); 
    tv =(TextView)findViewById(R.id.tv); 
    lv1.setAdapter(new ArrayAdapter<String>(this,R.layout.testxml, lv_arr)); 
     lv1.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
     // final TextView mTextView = (TextView)view; 
      switch (position) { 
      case 0: 
       j=2; 
       Toast t = Toast.makeText(Play.this, "2 min selected",Toast.LENGTH_SHORT); 
       t.show(); 
       break; 
      case 1: 
       j=5; 
       Toast t1 = Toast.makeText(Play.this, "5 min selected ",Toast.LENGTH_SHORT); 
       t1.show(); break; 

      case 2: 
       j=10; 
       Toast t2 = Toast.makeText(Play.this, "10 min selected",Toast.LENGTH_SHORT); 
       t2.show(); break; 

      case 3: 
       j=15; 
       Toast t3 = Toast.makeText(Play.this, "15 min selected",Toast.LENGTH_SHORT); 
       t3.show();  
     break; 
      default: 
       // Nothing do! 
      } 

     } 
    }); 
    try { 
     mp.setDataSource("http://94.55.45.123/bbc"); 
     mp.prepare(); 
    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (SecurityException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
      mp.start(); 
b.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      handler=new Handler(); 
      final Runnable r = new Runnable() 
      { 
       public void run() 
       { 

         myFinish(); 
       } 
      }; 

      handler.postDelayed(r, (60*1000)+j); 
      i++; 
     } 
     private void myFinish() { 
      // TODO Auto-generated method stub 
      Toast t1 = Toast.makeText(Play.this, "Music stop",Toast.LENGTH_SHORT); 
     t1.show(); 
     mp.stop(); 
     finish(); 
     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     intent.addCategory(Intent.CATEGORY_HOME); 
     startActivity(intent); 
     } 


    }); 

} 
+0

안녕하세요. 친구들에게 .. 효율적인 방법인지 아닌지 말해 주시겠습니까? –

답변

0

입니다.

규칙이 있지만 일반적으로 5 분 이상 지연 될 경우 확실하지는 않지만 AlarmManager을 사용합니다.

관련 문제