这是我的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_getgps);
Intent cas = getIntent();
String setcas = cas.getStringExtra(Login.EXTRA_CAS);
//Toast.makeText(getApplicationContext(), setcas, Toast.LENGTH_SHORT).show(); -na overenie ci sa premenna preniesla z predchadzajucej aktvity
Timer timer = new Timer( );
//timer.scheduleAtFixedRate(void getit, long 5000, long 5000);
timer.schedule(new TimerTask() {
@Override
public void run() {
}
}, Long.parseLong(setcas));}
public void getit(Bundle savedInstanceState){
LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, mlocListener);
我想从run中调用方法getit。但是idk怎么做,当我尝试在方法运行中使用方法getit中的代码时,它没有接受,因为它发现了Bundle savedInstanceState的一些错误... 有人可以做我应该做的事吗?
由于
答案 0 :(得分:0)
在onCreate
方法中,将Bundle savedInstanceState
声明为final
:
protected void onCreate(final Bundle savedInstanceState) {
//...
}
现在你可以做到
Timer timer = new Timer( );
timer.schedule(new TimerTask() {
@Override
public void run() {
getit(savedInstanceState);
}
}, Long.parseLong(setcas));
使用Handler
进行编辑:
Handler handler = new android.os.Handler();
handler.postDelayed(new Runnable() {
public void run() {
getit(savedInstanceState);
}
}, Long.parseLong(setcas));