2012-06-26 156 views
0

我是新來的機器人..實際上我試圖增加內存的Android手機通過我的應用程序..爲此,我創建了一個活動,我可以啓動其他應用程序出現在我們的手機中。這種方法正在成功減少RAM內存。但我面臨着一個困難,因爲我無法在應用程序啓動後看到PARENT活動。我需要按其他活動(被推出),以在後臺,只要它已經推出,總是我需要的家長活動是可見的運行..難以通過應用程序啓動應用程序(同時)

package com.android; 

import java.util.List; 
import android.app.Activity; 
import android.app.ActivityManager; 
import android.app.ActivityManager.MemoryInfo; 
import android.content.ActivityNotFoundException; 
import android.content.ComponentName; 
import android.content.Context; 
import android.content.ContextWrapper; 
import android.content.Intent; 
import android.content.pm.PackageManager; 
import android.content.pm.ResolveInfo; 
import android.os.Bundle; 
import android.os.Handler; 
import android.widget.LinearLayout; 
import android.widget.Toast; 
/** 
* GraphViewDemo creates some dummy data to demonstrate the GraphView component. 
* @author Arno den Hond 
**/ 
public class VsActivity extends Activity { 
    /** 
    * Variable Array for GraphView 
    * verlabel : Background Height Values 
    * horlabel : Background Width Values 
    * values : Max Values of Foreground Active Graph 
    */ 
    private float[] values = new float[60]; 
    long availableMegs; 
    private String[] verlabels = new String[]  { "500","450","400","350","300","250","200","150","100","50","0"}; 
    private String[] horlabels = new String[] {"0","10", "20", "30", "40", "50", "60"}; 
    private GraphView graphView; 
    private LinearLayout graph; 
    private boolean runnable = false; 
    public static int datasend,test=0; 
    int cnt=0; 
    Activity activity = this.activity; 
    static int count=0; 
    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     graph = (LinearLayout)findViewById(R.id.graph); 
     graphView = new GraphView(this, values, "TEST GRAPH", horlabels, verlabels, GraphView.LINE); 
     graph.addView(graphView); 
     runnable = true; 
     startDraw.start(); 
    } 

    @Override 
    public void onDestroy(){ 
     super.onDestroy(); 
     runnable = false; 
    } 

    public void setGraph(){ 
     int i,j; 
     count=count+10; 
     try{ 
       j=values.length-1; 
     for(i=0; i<values.length-1; i++){ 
      values[i] = values[i+1]; 
     } 
     MemoryInfo mi = new ActivityManager.MemoryInfo(); 
     ActivityManager activityManager = (ActivityManager) getApplicationContext() 
      .getSystemService(ACTIVITY_SERVICE); 
     activityManager.getMemoryInfo(mi); 
     datasend= (int)((mi.availMem/1048576)); 
values[values.length-1] = (float) datasend;   
graph.removeView(graphView); 
     graph.addView(graphView); 
     } 
     catch (Exception e){ 
      // e.printstacktrace(); 
     } 
    } 

private void launchComponent(String packageName, String name){ 
    System.out.println("launch application "+datasend); 
    Intent launch_intent = new Intent("android.intent.action.MAIN"); 
    launch_intent.addCategory("android.intent.category.LAUNCHER"); 
    launch_intent.setComponent(new ComponentName(packageName, name)); 
    launch_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    if(datasend > 24){ 
     System.out.println("launch application inside if "+packageName+" "+name); 
    this.startActivity(launch_intent); 
    } 
} 

public void startApplication(){ 
    String application_name = ""; 
    test=1; 
    //ContextWrapper activity = this.activity; 
    try{ 
     System.out.println("Start application "); 
     Intent intent = new Intent("android.intent.action.MAIN"); 
     intent.addCategory("android.intent.category.LAUNCHER"); 
     List<android.content.pm.PackageInfo> packageList; 
     intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
     PackageManager pm = this.getPackageManager(); 
     packageList = pm.getInstalledPackages(0); 
     List<ResolveInfo> resolveinfo_list = pm.queryIntentActivities(intent, 0); 

     for(ResolveInfo info:resolveinfo_list){ 
      application_name = info.activityInfo.packageName; 
      System.out.println(info.activityInfo.packageName+" "+info.activityInfo.name); 
      //if(info.activityInfo.packageName.equalsIgnoreCase(application_name)){ 
       launchComponent(info.activityInfo.packageName, info.activityInfo.name); 
       // break; 
      // } 
     } 
    } 
    catch (ActivityNotFoundException e) { 
     Toast.makeText(activity.getApplicationContext(), "There was a problem loading the application: "+application_name,Toast.LENGTH_SHORT).show(); 
    } 
} 
public Handler handler = new Handler(){ 
    @Override 
    public void handleMessage(android.os.Message msg){ 
     switch(msg.what){ 

     case 0x01: 
      setGraph(); 
      // if(test == 0){ 
      startApplication();//} 
      break; 
     } 
    } 
}; 

public Thread startDraw = new Thread(){ 
    @Override 
    public void run(){ 
     while(runnable){ 
      handler.sendEmptyMessage(0x01); 
      try{ 
       MemoryInfo mi = new ActivityManager.MemoryInfo(); 
       ActivityManager activityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE); 
       activityManager.getMemoryInfo(mi); 
       long ava = mi.availMem/1048576L; 
       //count=(int)ava; 
       //System.out.println("SUDARHAN RAMAN "+ava+" "+count); 
       Thread.sleep(1000); 
      } catch (Exception e){ 
       // e.printstacktrace(); 
      } 
     } 
    } 
}; 
} 

這裏GraphView是查看這將吸引使用Canvas.drawline(...) 在上面的代碼startapplication()將啓動子活動(安裝在我們的手機應用程序)的圖..

plz幫助...

回答

0
 Intent i = new Intent(Intent.ACTION_MAIN); 
      PackageManager manager = mContext.getPackageManager(); 
      i = manager.getLaunchIntentForPackage(_AppPkgName); 
      i.addCategory(Intent.CATEGORY_LAUNCHER); 
      startActivity(i); 
+0

這將lau所有在我們手機上的應用程序?如何知道該應用是否啓動? ...如果我的問題是愚蠢的原諒我bcoz iam新的Android .. – Sudarshan

+0

你想要做什麼。你想從自己的活動或其他任何活動中打開安裝在手機中的應用程序嗎? – skygeek

+0

我得到了這樣的情景做..基本上我需要做壓力測試像東西,因爲我們有2場景/環境1)基於降低電池電量和測試,2)增加RAM內存和內存使用和測試...現在我們需要2建立一個像上面的點和書房環境做壓力測試應用程序...爲了增加Ram的使用我想從一個應用程序啓動多個應用程序.. – Sudarshan

相關問題