thread中有3個靜態方法set_second(int s) ,stop_thread(),start_thread()讓使用者來設定顯示時間間隔,停止,開始時間,其實我這project已經多加了許多功能(譬如鬧鐘,顯示方
式..),但是還不是我想要的.
滿有趣的我用了一個反向寫程式方法來啟動音樂,在Clock_widget.java結尾的地方(藍色部份)
其他程式部份我會在放上來(待續)
終於知道寫法犯了錯誤,下面的 public void onReceive(Context context, Intent intent)會啟動public Clock_widget()這個建構子,每當我按鈕,onReceive接收,就會呼叫public Clock_widget()這個建構子,因此thread會在產生,一直按就會一直產生thread,解決方法public void onUpdate才是初始化的地方,將public Clock_widget()拿掉,把內容放置onUpdate就OK了.
package test.Clock_widget1;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class CLOCK1_widget1_music_file {
private static File myFilePath;
private static List
private static String filepath;
public CLOCK1_widget1_music_file(String path) {
//必須初始化array,否則error
}
//給路徑,取得all file list,給目錄或回上一層使用
public static List
myFilePath = new File(path);
filepath=path;
//必須初始化array,否則error
dirarray=new ArrayList
//加上第一項
dirarray.add("回到上一層");
//是目錄回傳list
if(myFilePath.isDirectory()){
for(int j=0;j
dirarray.add( myFilePath.list()[j]);
//Log.d("TAG F:",dirarray[j]);
}
}else{
//不是目錄回到上一層
//先回到當前目錄
filepath=myFilePath.getParent();
File f=new File(filepath);
//在一次就是上層目錄,但是若是根目錄除外
if(!filepath.equals("/")){
filepath=f.getParent();
}
myFilePath = new File(filepath );
for(int j=0;j
dirarray.add( myFilePath.list()[j]);
//Log.d("TAG F:",dirarray[j]);
}
}
return dirarray;
}
//當前路徑
public static String get_file_path(){
return filepath;
}
//選中file
public static String get_file(int i){
return dirarray.get(i);
}
public static boolean is_directory(String st){
File myFilePath = new File(st);
return myFilePath.isDirectory();
}
public static boolean is_file(String st){
File myFilePath = new File(st);
return myFilePath.isFile();
}
}
沒有留言:
張貼留言