歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android設置全局變量&&啟動系統自帶應用程序

.開發過程中有時不可避免的要使用全局變量.

之前的做法都是直接按照java的方式設置靜態變量public static int 來定義一個全局變量,後來發現這個值有時就莫名其妙的消失了.估計是隨activity生命周期或者Android回收機制給搞沒了.找到答案了. 

另一個適合android的全局變量方法:

1.建一個全局類

  1. class MyApp extends Application {  
  2.   
  3.   private String myState;//全局變量   
  4.   
  5.   public String getState(){  
  6.     return myState;  
  7.   }  
  8.   public void setState(String s){  
  9.     myState = s;  
  10.   }  
  11. }  
2.調用時
  1. class Blah extends Activity {  
  2.   
  3.   @Override  
  4.   public void onCreate(Bundle b){  
  5.     ...  
  6.     MyApp appState = ((MyApp)getApplicationContext()); //在任何地方調用時都這麼寫.   
  7.     String state = appState.getState();  
  8.     ...  
  9.   }  
  10. }  
3.最後別忘了.在你的 AndroidManifest.xml 加上android:name  (不是新建<application>標簽哦.)
  1. <application android:name=".MyApp"   
  2.        android:icon="@drawable/icon"   
  3.        android:label="@string/app_name">  

二.通過包名啟動程序.

我們知道要調用一個程序,要知道一個程序的包名和Activity名.比如調用短信時

  1. Uri smsUri = Uri.parse("tel:10086");  
  2. returnIt = new Intent(Intent.ACTION_VIEW, smsUri);  
  3. returnIt.putExtra("sms_body""yyyy");  
  4. returnIt.setType("vnd.android-dir/mms-sms");  

但是有時要啟動一些山寨手機自帶的系統軟件時.你不知道Activity名.就可以直接用包名啟動系統自帶的程序.

  1. Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.xxxxxxx");  
  2. if(intent!=null)startActivity(intent);  
關於如何查看系統自帶程序的報名可以在目錄 system/app下查看.
Copyright © Linux教程網 All Rights Reserved